cURL:处理响应:基于行的文本数据

时间:2012-04-24 09:19:15

标签: php curl response

我正在使用cURL向另一个网络服务器发送请求。

这是我用来设置和发送请求的代码:

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

所以我的问题是: 我该如何访问这些数据?

编辑: 这是我的数据包的截图:

1 个答案:

答案 0 :(得分:1)

您的服务器响应未正确形成。它应该是这样的:

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

curl_setopt(CURLOPT_VERBOSE, 1)已经在cURL中启用了调试模式,但也许你应该有curl_setopt(CURLOPT_STDERR, "php://output")

请告诉我是否无法更改响应(这非常糟糕)。