我正在使用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
所以我的问题是: 我该如何访问这些数据?
编辑: 这是我的数据包的截图:
答案 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")
请告诉我是否无法更改响应(这非常糟糕)。