curl无法应对很多情况

1.curl 命令,当url中存在匹配条件和空格时如何书写。

如 curl -i -k -X GET http://172.16.x.x:5000/config-manager/v2/script_freq?creater=anony&name=test&c_begin_t=2016-08-02 02:42:06
如果直接发送,& 会被系统解析。空格也会被系统解析。
命令需对特殊字符进行转义。上面的命令可以修改为
curl -i -k -X GET http://172.16.x.x:5000/config-manager/v2/script_freq?creater=anony&name=test&c_begin_t=2016-08-02%2002:42:06
在 & 钱加转义符 , 用 %20 取代空格。

建议 对url使用双引号!

  1. 最近看Elasticsearch: The Definitive Guide这本书的时候,有些时候发现使用curl的时候,在GET请求中加了-d参数,因为很少见到GET请求在请求体中带参数,一般情况下都是在URL里面的,所以好奇特地用wireshark抓了一下包,使用的命令是curl -XGET "http://120.25.162.238:9200/_search?pretty" -d '{"from":5,"size":5}'
    ,返回的结果一切正常最近看Elasticsearch: The Definitive Guide这本书的时候,有些时候发现使用curl的时候,在GET请求中加了-d参数,因为很少见到GET请求在请求体中带参数,一般情况下都是在URL里面的,所以好奇特地用wireshark抓了一下包,使用的命令是curl -XGET "http://120.25.162.238:9200/_search?pretty" -d '{"from":5,"size":5}' ,返回的结果一切正常
20160502202058876.jpg

可以看到GET请求的URL是/_search?pretty,URL中并没有想像中的参数,参数是在图片最下方所示的部分中。由此观之,HTTP GET请求实际上也是能在请求体中带参数的,只不过有些服务器(尤其是缓存代理服务器)可能不支持这种方式而已。而ES的设计者认为GET比较符合检索信息的这个动作,比POST要好,所以使用了GET请求,不过为了与习惯保持一致,而且为了兼容所有的服务器,所以把GET换成POST也是可以的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议和选项,如HTTP、FTP、TELNET等,能...
    司马东阳阅读 1,457评论 0 6
  • 原文地址:PHPcURL库函数抓取页面内容(转)作者:巴克 cURL是一个利用URL语法规定来传输文件和数据的工具...
    司马东阳阅读 1,206评论 0 3
  • 一、什么是CURL? cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、...
    伊Summer阅读 1,324评论 0 4
  • Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序...
    SkTj阅读 4,258评论 0 7
  • CURL的操作curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/...
    simonsgj阅读 6,234评论 0 1