Curl发送HTTP请求

作者: 老菜菜 | 来源:发表于2017-10-19 00:18 被阅读0次

大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。今天给大家分享一下,修真院官网JAVA(职业)任务2的知识点——Curl发送HTTP请求。

1.背景介绍

在linux上有多种接口测试工具,如restclient,httpie,ab等,在项目中最常用的是curl,用来进行简单的测试。

2.知识剖析

2.1 curl

curl是很方便的Rest客戶端,可以很方便的完成許多Rest API测试的需求,利用curl指令,可以送出HTTP GET, POST, PUT, DELETE, 也可以改变 HTTP header来满足使用REST API需要的特定条件。

2.2 测试rest时常用的参数

-X/--request    [GET|POST|PUT|DELETE|…]    使用指定的HTTP method 发出指定的request

-H/--header    “XX:XXX”    设定request的header

-i/--include    显示response的header

-d/--data    “XX=XXX”    设定HTTP parameters

-v/--verbose    输出比较多的信息

-u/--user    “XX:XXX”    使用者帐密

-b/--cookie    cookie文件路径   使用cookie

2.3 curl发送请求写法

-X后面加HTTP method,如:curl -X [GET|POST|PUT|DELETE] "http://www.jnshu.com" (纯英文、数字不用加引号,其他情况不加引号可能会出问题)

2.4 curl发送请求时可以附加一些信息

1)设置header:curl -i -H "Content-Type: application/json" http://www.jnshu.com/aaa

2)设置HTTP parameter:curl -X POST -d "param1=value1¶m2=value2" 或者 -d "param1=value1" -d "param2=value2"

3)session认证:curl -X GET 'http://www.jnshu.com/aaa' --header 'sessionid:1234567890987654321'

4) 使用cookie:curl -i --header "Accept:application/json" -X GET -b ~/cookie.txt http://www.jnshu.com/aaa

5) 文件上传:curl -i -X POST -F 'file=@/User/my_file.txt' -F 'name=file_name'

6) HTTP基本认证(HTTP Basic Authentication):curl -i --user username:password http://www.rest.com/api/foo'

2.5 wget访问HTTP资源

wget命令用来从指定的URL下载文件,访问接口时返回的数据会保存到本地。(自己测试可以访问GET和POST接口)

例:wget http://www.jnshu.com/aaa

wget  --post-data="xx=xxx" http://www.jnshu.com/aaa

3.常见问题

实际使用

4.解决方案

在服务器上运行curl命令,加上url和相关参数

5.编码实战

6.扩展思考

curl发送POST请求时,数据可以采用xml格式或json格式, 并且可以发送本地的json和xml文件。

1)   curl -H 'content-type: application/json' -X POST -d '{"name":"shfbjsf"}' http://www.jnshu.com/aaa

2)   curl -X POST -H 'content-type: application/json'  -d @/apps/jsonfile.json http://www.jnshu.com/aaa

3)   curl -H 'content-type: application/xml' -X POST -d '<?xml version="1.0" encoding="UTF-8"?><name>aaa</name>' http://www.jnshu.com/aaa

4)   curl -X POST -H 'content-type: application/json'  -d @/apps/xmlfile.json http://www.jnshu.com/aaa\

7.参考文献

参考一:使用curl指令测试rest

参考二:使用curl进行接口测试

8.更多讨论

使用restclient,httpie,ab等工具测试rest

PPT链接


Curl发送HTTP请求_腾讯视频

提问:curl需要在linux安装吗?

答:curl时linux系统命令,不需要安装。

提问:有postman了为什么还要用curl或weget测试接口呢?

答:postman在有些情况下是不好用的,比如服务器限制内网访问,这个时候用curl更便捷。

提问:rest客户端是什么?

答:rest客户端是指可以发送rest请求的客户端工具,如restclient,postman等,都属于rest客户端。

鸣谢

感谢大家观看

------------------------------------------------------------------------------------------------------------------------

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

相关文章

  • REST调试工具

    CURL 发送GET请求 curl -H "Accept:application/json" http://loc...

  • 发送http请求

    发送http请求 发送http2请求 参考链接:curl支持h2: https://segmentfault.co...

  • Curl发送HTTP请求

    大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。今天给大家分享一下,修真院官网JAVA...

  • curl 发送 http请求

    测试接口,经常会用到接口测试工具如postman,而curl命令可以直接在终端进行测试,下面介绍一下如何使用 ge...

  • 后端单元测试

    如何测试 api 1. 使用 curl 命令 发送 GET 请求curl http://localhost:300...

  • php发送http请求,获取网页内容方法

    PHP发送http请求,获取网页内容方法:cURL、file_get_contents()、fopen() 区别:...

  • HTTP请求和响应格式

    分析请求 curl 发请求,得到响应- curl -L http://baidu.com- curl http:/...

  • 通过curl来发送HTTP请求

    简介 curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但...

  • php 使用curl发送http请求

  • curl模拟Postman发送HTTP请求

    前言 一般情况,我们调试数据接口,都会使用 Postman 这个工具,但是在线上Linux环境,比较麻烦。在命令行...

网友评论

    本文标题:Curl发送HTTP请求

    本文链接:https://www.haomeiwen.com/subject/suaeuxtx.html