我正在尝试使用curl与第三方服务器通信。
认证系统如下:
这本身并不是问题而且我能够提出请求等,但无论我发送什么服务器,即使我发送无效的数据格式,服务器总是会响应200。如果我在浏览器中放入相同的URL,则会返回有关无效格式的错误消息。
有谁知道为什么会这样?提前谢谢,
function go($url,$postvars=null)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie_.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie_.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POST,count($postvars));
$postfields = http_build_query($postvars);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postfields);
curl_exec($ch);
curl_close($ch);
}
go($url,$login_array); //login=>'',pass=>''
go($url,$some_request_array);
答案 0 :(得分:1)
很可能是服务器代码中的错误,这意味着它会发送200个状态及其错误消息。因此,在浏览器中它将是一个错误消息,因为这是在正文中,它仍然是“成功的”。在浏览器访问中设置拦截(firebug网络,小提琴等)并查看状态。
如果是这种情况,您有两种选择: