私は、アプリケーションAPIへのREST呼び出しを行うPHPウェブサービスに取り組んでいます。私のWebサービスは、Ubuntuと、以下のコマンドを実行しているLAMPサーバは、コマンドラインから完璧な作業している上に構築されています:PHP CURL PUTコマンドラインと同等
カール-k -uユーザ名-H「コンテンツタイプ:アプリケーション/ xmlの」-d PUT -X @ request.xml https://server/path/
しかし、私はXMLが欠落していることを示す、PHPで私はRESTサーバーから次の応答を取得しています同じ要求を構築しようとすると:ファイルの
HTTP400Premature終わりを。ここで
私のPHP要求のコードです:私は読んだことがある
$ch2 = curl_init($service_url);
$headers = array('Content-Type: application/xml', 'Accept: application/xml');
curl_setopt($ch2, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch2, CURLOPT_PUT, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch2, CURLOPT_POSTFIELDS, $xmlRequest);
curl_setopt($ch2, CURLOPT_USERPWD, 'user:password');
$curl_response = curl_exec($ch2);
すべてがCURLOPT_POSTFIELDSこれを行うための場所ですが、私は、これは追加のためだったと思っ示します「?」変数を実際のURLに変換します。とにかく、どんな助けもありがとう。あなたはCURLOPT_PUTを使用する場合
'男curl'を試してみて、' -XPUT'と私が探しているものを '-d' – Sammitch
こんにちはSammitch、見ていますPHPの同等のしかし。私はそれをチェックアウトします。 – GED125