0

cURL を使用して別の Web サーバーにリクエストを送信しています。

これは、リクエストをセットアップして送信するために使用しているコードです。

function currentStatePlaying($ip){
$url = "http://".$ip."/?track=ginfo";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result = curl_exec($ch);   
curl_close($ch);
echo $result;
}

結果が空であることに気付きました。wireshark で作成されたネットワーク キャプチャを見ると、必要な応答が表示されます。行ベースのテキスト データとして httppacket 内に埋め込まれています: text/html

私の質問は、どうすればこのデータにアクセスできますか?

編集: これは私のパケットのスクリーンショットです:

4

1 に答える 1

1

サーバーからの応答が正しく形成されていません。次のようになります。

HTTP/1.0 200 OK\r\n
Content-Type: text/html\r\n
\r\n
The content goes here

cURL で既にデバッグ モードをcurl_setopt(CURLOPT_VERBOSE, 1)有効にしているが、おそらく有効にしておく必要があるcurl_setopt(CURLOPT_STDERR, "php://output")

応答を変更できない場合はお知らせください (これはかなり悪いことです)。

于 2012-04-25T02:50:06.187 に答える