Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http RESTAPI-在chrome中工作,但curl不工作_Http_Google Chrome_Curl - Fatal编程技术网

Http RESTAPI-在chrome中工作,但curl不工作

Http RESTAPI-在chrome中工作,但curl不工作,http,google-chrome,curl,Http,Google Chrome,Curl,我正在使用web服务API。 http://www.douban.com/j/app/radio/people?app_name=radio_desktop_win&version=100&user_id=&expire=&token=&sid=&h=&channel=1&type=n 在chrome中键入该地址,可以返回预期结果(包含歌曲信息的json文件),但使用curl时失败。(在这两种情况下,响应代码正常,但在后一种情况下,响应主体不正确) 以下是使用Chrome developer工具

我正在使用web服务API。
http://www.douban.com/j/app/radio/people?app_name=radio_desktop_win&version=100&user_id=&expire=&token=&sid=&h=&channel=1&type=n

在chrome中键入该地址,可以返回预期结果(包含歌曲信息的json文件),但使用
curl
时失败。(在这两种情况下,响应代码正常,但在后一种情况下,响应主体不正确)

以下是使用Chrome developer工具转储的请求信息:

Request URL:http://www.douban.com/j/app/radio/people?app_name=radio_desktop_win&version=100&user_id=&expire=&token=&sid=&h=&channel=7&type=n
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:bid="lwaJyClu5Zg"
Host:www.douban.com
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Query String Parametersview sourceview URL encoded
app_name:radio_desktop_win
version:100
user_id:
expire:
token:
sid:
h:
channel:7
type:n
但是,将该API与curl一起使用,即
curlhttp://www.douban.com/j/app/radio/people?app_name=radio_desktop_win&version=100&user_id=&expire=&token=&sid=&h=&channel=7&type=n
将不会返回预期结果

即使将确切的头指定为从Chrome转储的头,仍然失败

curl -v -H "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Accept-Encoding:gzip,deflat,sdcn" -H "Accept-Language:zh-CN,zh;q=0.8" -H "Cache-Control:max-age=0" -H "Connection:keep-alive"  -H "Host:www.douban.com" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" http://www.douban.com/j/app/radio/people?app_name=radio_desktop_win&version=100&user_id=&expire=&token=&sid=&h=&channel=7&type=n
下面是使用curl中的
-v
打印出来的内容。看起来一切都与Chrome的请求一致,但响应主体仍然不正确

获取/j/app/radio/people?app\u name=radio\u desktop\u win HTTP/1.1 用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10_7_5)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/30.0.1599.101 Safari/537.36 接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,/;q=0.8 接受编码:gzip、deflat、sdcn 接受语言:zh CN,zh;q=0.8 缓存控制:最大年龄=0 连接:保持活力 主持人:www.douban.com


为什么会这样?感谢您的帮助。

您需要在shell中的url周围加引号。否则,
将导致故障


另一个常见问题是:您可能在Chrome上使用HTTP代理。如果是这样,您还需要告诉curl关于这个代理的情况。您可以通过设置环境变量
http\u proxy

来实现这一点,您需要在shell中的url周围加上引号。否则,
将导致故障

另一个常见问题是:您可能在Chrome上使用HTTP代理。如果是这样,您还需要告诉curl关于这个代理的情况。您可以通过设置环境变量
http\u proxy
来执行此操作