首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么curl截断这个查询字符串?

为什么curl截断这个查询字符串?
EN

Stack Overflow用户
提问于 2012-02-02 01:11:28
回答 1查看 79.8K关注 0票数 106

我确信这个问题的答案将是一些令人痛苦的显而易见的字符编码问题...

我在命令行中使用curl来测试python应用程序中的一些端点。端点采用纬度和经度的url参数。没什么特别的。我输入了以下命令:

curl -v -L http://localhost:5000/pulse/?lat=41.225&lon=-73.1

服务器响应,输出为详细的curl:

* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /pulse/?lat=41.225 HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: localhost:5000
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 500 INTERNAL SERVER ERROR
< Content-Type: application/json
< Content-Length: 444
< Server: Werkzeug/0.8.1 Python/2.7.2+
< Date: Wed, 01 Feb 2012 17:06:29 GMT
< 
{
    "msg": "TypeError: float() argument must be a string or a number", 
    "flag": 0, 
    "stack": [
        "Traceback (most recent call last):", 
        "  File \"engine.py\", line 139, in dispatch_request", 
        "    return getattr(self, 'action_'+endpoint)(request, **values)", 
        "  File \"engine.py\", line 818, in action_getpulse", 
        "    lon = float(request.args.get('lon'))"
    ], 
    "err": 1
* Closing connection #0
}
[1]+  Done

在该转储的第二行,很明显没有发送第二个参数lon。我做错了什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-22 03:10:51

“我做错了什么”这个问题的答案是,shell看到了与号(&),并认为这是命令的结尾(并将其放在后台)。你需要引用它,这就是为什么引用了字符串的答案是有效的。你可以很容易地运行下面的代码:

curl -v -L "http://localhost:5000/pulse?lat=41.225&lon=-73.1"
票数 271
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9100099

复制
相关文章

相似问题

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