有没有人经历过卷曲请求不一致?

时间:2010-03-19 19:15:26

标签: php curl

我正在尝试请求一个url但它失败了,当我转储curl exec的结果时,它返回false。

http://mydomain.com:8807/getstate/?zipcode=22311&field=statecode

在浏览器中我可以访问它并返回正确的HTTP内容正文,内容类型为text / html。

如果我将其更改为:

http://mydomain.com:8807/getstate/?zipcode=22311&field=state

除了参数值不同之外,哪个是相同的REST服务,我的curl工作正常。怎么会这样?

我没有发出多个请求,我只做一个实例..

$url = 'http://mydomain.com:8807/getstate/?zipcode=22311&field=state';

除了参数值不同之外,哪个是相同的REST服务,我的curl工作正常。怎么会这样?

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
$request = curl_exec( $ch );
var_dump($request);

非常好,这不是一个错字,想不出一个理由。它为状态代码返回bool(false),但为状态返回正确的内容。

更新:似乎响应标头不正确 - 浏览器宽松并呈现页面,无论标头是否不正确(或缺少标头)。

2 个答案:

答案 0 :(得分:1)

你错过了什么。打开curl调试以告诉您更多curl_setopt($ch, CURLOPT_VERBOSE, true);另请参阅firebug中返回的内容,并使用fiddler来帮助调试。

答案 1 :(得分:1)

在发出请求之前,尝试在Curl中设置浏览器的相同用户代理...

如果它适用于浏览器,它应该以这种方式工作。