2014-12-13 67 views
2

,我请求一个URL,并使用curl.but我发现此网址的内容,有些结果值不一样的原始地址PHP卷曲的请求得到错误的值

亩卷曲代码

$url="https://example.com/getDataV1P2.php?action=checkUpdates&lastmodified=2014-12-12%2014:08:09&userid=16"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_URL,$url); 
$result=curl_exec($ch); 

var_dump($result); 
curl_close($ch); 

当我与原来的URL使用curl然后

结果表明“SDL博客文章”要求:“1”

,但是当我从浏览器的URL原始地址命中则结果显示“SDL博客文章”:‘0’

我无法理解为什么

我也在这里尝试这种

$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_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
$result=curl_exec($ch); 
curl_close($ch); 
+1

看看浏览器中的请求标题和你的curl调用之间有什么区别,并用curl伪造它们... – 2014-12-13 07:49:40

+0

是啊,Glavic说什么,假的一些头特别是用户代理,接受和语言。 – Jasen 2014-12-13 07:56:02

+0

请查看我的更新问题@Glavić – KGolou4299 2014-12-13 08:05:10

回答

0

问题不在于你有错误的标题,但是根据你输入的结果是不同的。

如果调用此网址:

http://danoah.com/getDataV1P2.php?action=checkUpdates&lastmodified=2014-12-12+12%3A00%3A00 

反应将是"SDL Blog Posts" : "1",但如果你increate小时的一个:

http://danoah.com/getDataV1P2.php?action=checkUpdates&lastmodified=2014-12-12+13%3A00%3A00 

反应会"SDL Blog Posts" : "0"

而请urlencode您在url中的值,因为值2014-12-12%2014:08:09被错误地编码,它应该是2014-12-12+14%3A08%3A09