我想捕获一个站点的响应(http://gnocchi-www.buffalo-ggn.net/bingo2-v2.47.0-JACKET/js/cache/static_desktop_data.json)在我的php文件中,在数据库中写入可用的集合项。
如果我在浏览器中输入地址,就会得到一个json字符串作为响应。但是如果我使用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;
当我在浏览器中输入url时发送的标题是:
主持人:gnocchi-www.buffalo-ggn.net
连接:保持活力
接受:text/html、application/xhtml-xml、application/xml;q=0.9,图像/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
Accept-Language: de-DE, de; q=0.8, en-US; q=0.6, en; q=0.4
有人能帮我解决这个问题吗???
从代码中删除此项:
"Accept-Encoding: gzip,deflate,sdch",
如果您确实想要发送任何编码请求,那么在代码中添加这个curl选项。
curl_setopt( $ch, CURLOPT_ENCODING, "");
最后,这对libcurl的现代版本没有任何影响。所以把这个拿走。
curl_setopt( $ch, CURLOPT_GET, true);
更新:为了给你更多的上下文,我计划通过使用PhoneGap将chrome扩展即时音乐移植到Android应用程序中。一些在PC上允许的YouTube视频在手机上不允许,我怀疑这是因为Android应用程序中嵌入的YouTube player没有引用者标题。我正试图找到一个解决这个问题的办法,这样我就可以在手机上播放这样的视频了。
我是改造的新手,并试图使用改造提出POST请求。我的 POST 请求有一个复杂的 JSON 正文,如下所示: 有效载荷: 我将接口定义为 我不确定我的用户类应该是什么样子,我希望有效载荷和上面提到的一样,到目前为止我的用户类是 我不确定Personalinfo,ContactInfo等是否应该是具有JSON请求中提到的所有字段的单独类,或者我应该将它们作为User类中的内部类以及如何使用User类
一、修改请求 在上一步中,我们恢复了截获的请求,没有进行任何更改。当我们在将请求转发到目的地之前修改被拦截的请求时,就会发挥拦截的全部功能。您可以继续上一步中的窗口和已配置的拦截规则。 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 点击查看教程 二、影片内容 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 我们配置和使用与上一教程中相同的拦截规
问题内容: 我试图对Java Html Document进行一些改进,但是我遇到了与之相关的问题。一件事是,如果用户代理是Java VM,则某些服务器会阻止请求。另一个问题是不会设置或标头字段。由于多个站点使用这些字段来验证是否从其自己的站点访问了内容,因此在此也将我屏蔽了。据我所知,唯一的解决方案是替换HTTP协议的URL处理程序。还是有任何方法可以修改默认的HTTP处理程序? 问题答案: 打开
有没有人知道如何发送,如果修改后,因为标题与网址请求? 我正在尝试获取状态代码,它会告诉我RSS页面是否已更新。 更新#1:我能够进行以下测试: 但奇怪的是,如果我删除整个iOS应用程序并运行它,我会得到304状态代码。但是,如果我注释掉添加if Modified Since值的行并重新运行它,那么我得到的是200,但是当我取消注释该行并重新执行它时,304错误不会返回……它是一个200错误代码。
问题内容: 是否可以使用某种JavaScript来更改或设置HTTP请求的标头? 问题答案: 标头是在下载javascript之前很久才传递的,更不用说解释了。总而言之,答案是否定的。 但是,如果您是在ajax调用的上下文中讲话(让我们以jQuery为例),则可以编写请求标头。 请参阅使用jQuery从AJAX调用中读取标头。在使用jQuery进行AJAX调用之前,请参阅设置标头 但是,如果您的J