對於這個問題的新手道歉。我正在考慮將一個網站的API集成到我自己的網站中。下面是從他們的文檔一些報價:在PHP中創建REST API請求
目前,我們只支持XML,撥打我們的API時 的HTTP接受 頭內容類型必須設置爲 「應用程序/ XML」。
API使用PUT請求方法。
我有我想要發送的XML,並且我有我想要發送給它的URL,但我該如何在PHP中構建合適的HTTP請求以獲取返回的XML?
在此先感謝。
對於這個問題的新手道歉。我正在考慮將一個網站的API集成到我自己的網站中。下面是從他們的文檔一些報價:在PHP中創建REST API請求
目前,我們只支持XML,撥打我們的API時 的HTTP接受 頭內容類型必須設置爲 「應用程序/ XML」。
API使用PUT請求方法。
我有我想要發送的XML,並且我有我想要發送給它的URL,但我該如何在PHP中構建合適的HTTP請求以獲取返回的XML?
在此先感謝。
這對我來說其實什麼工作:
$fp = fsockopen("ssl://api.staging.example.com", 443, $errno, $errstr, 30);
if (!$fp)
{
echo "<p>ERROR: $errstr ($errno)</p>";
return false;
}
else
{
$out = "PUT /path/account/ HTTP/1.1\r\n";
$out .= "Host: api.staging.example.com\r\n";
$out .= "Content-type: text/xml\r\n";
$out .= "Accept: application/xml\r\n";
$out .= "Content-length: ".strlen($xml)."\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $xml;
fwrite($fp, $out);
while (!feof($fp))
{
echo fgets($fp, 125);
}
fclose($fp);
}
您可以使用file_get_contents和stream_context_create創建請求並閱讀回覆。像這樣的東西會做:
$opts = array(
"http" => array(
"method" => "PUT",
"header" => "Accept: application/xml\r\n",
"content" => $xml
)
);
$context = stream_context_create($opts);
$response = file_get_contents($url, false, $context);
感謝這一點,但它似乎並不奏效。 $ response does not contain anything :(嗯。 – 2011-03-03 19:00:14
PHP.net says stream_create_context does not exist.Do you mean http://us3.php.net/manual/en/function.stream-context-create.php? – jerrygarciuh 2012-02-14 16:53:53
@jerrygarciuh絕對是一個錯字,我的代碼實際上使用了stream_context_create。 – alexn 2012-02-15 08:24:52
Ooh。連續選詞很酷。 – 2011-05-27 22:22:58
如果它工作正常,你應該接受這個答案\ o/ – dbr 2012-01-03 10:48:45
正如你所說。完成:) – 2012-01-05 06:47:25