-2

情報をAPIに送信し、XML形式で応答を取得するフォームがあります。結果を文書化/解析するための最良の方法(テキスト文書、またはその他)を知る必要があります。可能であれば、すべての結果に対して単一のドキュメントではなく、すべての応答を1つのドキュメントに保存したいと思います。

私はajaxpostメソッドを使用しており、結果コードが必要なlocalproxyコードは以下のとおりです

<?php
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, 'http://integrate.com/api/test.ashx'); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);

file_put_contents('mydata.xml', $result, FILE_APPEND);

die('<h1>Thanks!</h1>');

?>

xmlデータは以下の形式で提供されます

<result>
<success>0</success>
<leadid/>
<errors>
<error>Missing Field: </error>
</errors>
</result>

ファイルが作成され、コンテンツが含まれています。これはコンテンツです。エラーです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">

<HTML><HEAD><TITLE>Bad Request</TITLE>

<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>

<BODY><h2>Bad Request - Invalid Content Length</h2>

<hr><p>HTTP Error 400. There is an invalid content length or chunk length in the request.</p>

</BODY></HTML>

これは何を意味するのでしょうか?APIサーバーはリクエストを受け入れませんか?

4

1 に答える 1

1

xmlの解析に関しては、使用しますXML parser

結果をファイルに保存するには、各結果をファイルの最後に追加します。file_put_contents($filename, $data, FILE_APPEND)

例えば

<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://integrate.com/api/test.ashx');
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
curl_close($ch);
file_put_contents('mydata.xml', $result, FILE_APPEND);
?>

投稿リクエストを送信する必要がある場合は、次を追加します。

curl_setopt ($ch, CURLOPT_POSTFIELDS, 'param=value&param=value'); // to be replace with valid query string
curl_setopt ($ch, CURLOPT_POST, 1);
于 2012-08-16T23:46:01.277 に答える