3

この質問の新しさをお詫びします。ある Web サイトの API を自分の Web サイトに統合することを検討しています。ドキュメントからの引用を次に示します。

現時点では、XML のみをサポートしています。API を呼び出すときは、HTTP Accept ヘッダーのコンテンツ タイプを「application/xml」に設定する必要があります。

API はPUTリクエスト メソッドを使用します。

送信したい XML と送信先の URL がありますが、返された XML を取得する適切な HTTP リクエストを PHP で作成するにはどうすればよいでしょうか?

前もって感謝します。

4

2 に答える 2

12

file_get_contentsstream_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);
于 2011-03-03T15:11:57.587 に答える
6

これは実際に私のために働いたものです:

$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);
}
于 2011-04-04T12:45:19.387 に答える