Api 服务器总是用curl响应200,但在浏览器中访问时会给出错误消息
我正在尝试使用curl与第三方服务器通信 认证系统如下所示:Api 服务器总是用curl响应200,但在浏览器中访问时会给出错误消息,api,post,curl,Api,Post,Curl,我正在尝试使用curl与第三方服务器通信 认证系统如下所示: 使用凭据请求cookie 设置cookie 提出请求 这本身并不是一个问题,我能够发出请求等,但无论我发送什么,服务器总是响应200,即使我发送了无效的数据格式。如果我将相同的url放在浏览器中,它将返回有关无效格式的错误消息 有人知道为什么会这样吗?提前感谢, function go($url,$postvars=null) { $ch = curl_init($url); curl_setopt($ch, CURL
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);
很可能是服务器代码中有一个bug,这意味着它会发送200个状态和错误消息。因此,在浏览器中,它将是一条错误消息,因为这是正文中的内容,所以它仍然是“成功的”。在浏览器访问上放置一个截取(firebug网络、fiddler等),查看状态 如果是这种情况,您有两种选择:
嗨,乔恩。谢谢。这就是问题所在。但是为什么curl不向我显示带有200响应的错误消息呢?让我吃惊的是,我假设它可能是,尽管您是否会看到它将不仅仅取决于您对响应所做的操作,而且可能会从HTTP(我知道)进一步移动到curl的工作(我不知道)。