Bir alternatif yerine düzelene PHPs izle fonksiyonlarını kullanmak olacaktır
http://www.php.net/manual/en/ref.stream.php
Sizin kod gibi bir şey olur
$url = "http://some-restful-client/";
$params = array('http' => array(
'method' => "GET",
));
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp)
{
throw new Error("Problem with ".$url);
}
$response = @stream_get_contents($fp);
if ($response === false)
{
throw new Error("Problem reading data from ".$url);
}
echo $response //this is the contents of your request;
Sen 4> = 4.3.0 ya da PHP 5 Tho PHP kullanarak gerekir
GÜNCELLEME:
Senin için hızlı bir sınıfa bu sarılmış. Bunu kullanmak için, aşağıdaki gibi bir şey yapın
$hr = new HTTPRequest("http://someurl.com", "GET");
try
{
$data = $hr->send();
echo $data;
}
catch (Exception $e)
{
echo $e->getMessage();
}
İşte sınıfının kodudur. Siz de buna göre yazılan veri ve başlıkları ayarlamak için yapıcı 3. ve 4. parametreleri veri geçebilir. Not post verileri bir dize değil bir dizi olmalıdır, başlıkları tuşları başlığının adı olan bir dizi olmalıdır
Bu yardımcı olur umarım!
<?php
/**
* HTTPRequest Class
*
* Performs an HTTP request
* @author Adam Phillips
*/
class HTTPRequest
{
public $url;
public $method;
public $postData;
public $headers;
public $data = "";
public function __construct($url=null, $method=null, $postdata=null, $headers=null)
{
$this->url = $url;
$this->method = $method;
$this->postData = $postdata;
$this->headers = $headers;
}
public function send()
{
$params = array('http' => array(
'method' => $this->method,
'content' => $this->data
));
$headers = "";
if ($this->headers)
{
foreach ($this->headers as $hkey=>$hval)
{
$headers .= $hkey.": ".$hval."\n";
}
}
$params['http']['header'] = $headers;
$ctx = stream_context_create($params);
$fp = @fopen($this->url, 'rb', false, $ctx);
if (!$fp)
{
throw new Exception("Problem with ".$this->url);
}
$response = @stream_get_contents($fp);
if ($response === false)
{
throw new Exception("Problem reading data from ".$this->url);
}
return $response;
}
}
?>