首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST使用铬,但curl不起作用。

REST使用铬,但curl不起作用。
EN

Stack Overflow用户
提问于 2013-10-18 14:21:24
回答 1查看 3.7K关注 0票数 0

我正在使用一个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工具转储的请求信息:

代码语言:javascript
复制
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

但是,使用带有curl的API,即curl 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不会返回预期的结果。

即使指定确切的标题作为从Chrome转储的,仍然失败。

代码语言:javascript
复制
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

下面是用-v从卷曲打印出来的内容。似乎一切都与Chrome的要求相同,但响应体仍然不正确。

获取/j/app/radio/people?app_name=radio_desktop_win HTTP/1.1用户代理: Mozilla/5.0 (Macintosh;Intel 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,/;q=0.8接受-编码:gzip,de平面,/;q=0.8接受-语言:zh-CN,zh;q=0.8缓存-控制:最大年龄=0连接:保持活力Host:www.douban.com

为什么会发生这种事?感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-10-18 14:24:02

你需要把引号放在壳里的那个url上。否则,&就会制造麻烦。

另一个常见的问题是:您可能正在使用带有Chrome的HTTP代理。如果是这样的话,您也需要告诉curl这个代理。您可以通过设置环境变量http_proxy来做到这一点。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19452027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档