Iletmek için nasıl / PHP ile bir HTTP PUT isteği yönlendirme?

2 Cevap php

Ben bir sunucu üzerinden HTTP PUT istekleri almak ve ben başka bir sunucuya ileri / bu istekleri yönlendirmek istiyorum.

PHP ile her iki sunucuda PUT isteği işlemek.

PUT isteği temel HTTP kimlik doğrulaması kullanıyor.

İşte bir örnek:

www.myserver.com/service/put/myfile.xml

yönlendirmek

www.myotherserver.com/service/put/myfile.xml

Bu benim ilk sunucuda dosyayı kaydetme ve CURL kullanarak bir PUT isteği göndermeyi olmadan nasıl yapabilirim?

Teşekkürler!

2 Cevap

HTTP/1.1 gibi yönlendirme için durum kodu 307 tanımlar. Ancak, PUT normal istemci yazılımı tarafından kullanılan ve hiç kimsenin 307 onurlandırıyor oldukça fazla varsayabiliriz.

Bunu yapmanın en etkili yolu, kurulum için yeni bir URL'ye isteğini yönlendirmek için Apache üzerinde bir proxy.

Sen nasıl PHP vekil onu bu durumda,

$data = file_get_contents('php://input');
$mem  = fopen('php://memory'); 
fwrite($mem, $data); 
rewind($mem);   
$ch = curl_init($new_url);                             
curl_setopt($ch, CURLOPT_PUT, true);  
curl_setopt($ch, CURLOPT_INFILE, $mem); 
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($data)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
curl_exec($ch);       
curl_close($ch);  
fclose($meme);