【发布时间】:2014-03-03 15:45:05
【问题描述】:
我想在我的 php 文件中捕获站点 (http://gnocchi-www.buffalo-ggn.net/bingo2-v2.47.0-JACKET/js/cache/static_desktop_data.json) 的响应,以将可用的集合项写入数据库。
如果我在浏览器中输入地址,我会得到一个 json 字符串作为响应。但如果我使用 cURL 请求,我会得到一个空响应。
这是我的 curl 代码:
$url = 'http://gnocchi-www.buffalo-ggn.net/bingo2-v2.47.0-JACKET/js/cache/static_desktop_data.json';
$headers = array(
"Content-Type: application/x-www-form-urlencoded",
"Host: gnocchi-www.buffalo-ggn.net",
"Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4",
"Accept-Encoding: gzip,deflate,sdch",
"Accept: */*"
);
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_GET, true);
curl_setopt( $ch, CURLOPT_HEADER, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36");
curl_setopt( $ch, CURLOPT_REFERER, "https://gs1.wac.edgecastcdn.net/805F48/gnocchi/bingo2-v2.47.0-JACKET/assets/Game.swf");
curl_setopt( $ch, CURLOPT_VERBOSE, true);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
$response=curl_exec( $ch );
echo $response;
当我在浏览器中输入网址时发送的标题是:
主机:gnocchi-www.buffalo-ggn.net
连接:保持活动
接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/32.0.1700.107 Safari/537.36
接受编码:gzip、deflate、sdch
接受语言:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
谁能帮我解决这个问题???
【问题讨论】:
-
确切的代码对我有用——我得到了大量的 JSON 数据(根据返回的
Content-Length标头,578604 字节)。不过,您的代码会收到一些警告 - 尝试打开error_reporting(E_ALL);以查看您是否从中获得了一些有用的信息。 -
CURLOPT_GET选项不存在 (php.net/manual/en/function.curl-setopt.php) -
谢谢尼尔斯和最后。在我的另一台服务器上它工作正常。不太明白,但它在那里工作。谢谢你的帮助。也许我以前应该在那里尝试过。