每个开发人员都需要知道一堆有效的工具。 此类工具中的cURL😄
在本文中,我将解释如何使用curl来发出HTTP请求 。
什么是cURL
cURL基本上用于通过Internet协议为给定URL传输数据。
Curl是一个客户端程序。 在名称cURL中 , c代表客户端, URL表示curl与URL配合使用。
curl项目具有curl命令行和libcurl库。 在本文中,我们将重点介绍curl命令行。
Curl处理一系列Internet协议,例如HTTP,FTP,SMTP,TELNET等。
在本文中,我们将仅处理从Curl发出HTTP请求。
前提条件
您可以使用以下命令检查是否在系统中安装了Curl。
curl --version
如果您的系统中没有Curl,则可以从此URL https://curl.haxx.se/dlwiz/安装。
如何对HTTP请求使用Curl
我已经使用NodeJS构建了2个REST API端点。 一个端点支持GET请求,另一个端点支持POST请求。
在本文中,我们将使用Curl调用GET和POST端点。
请从此github存储库中将NodeJS代码克隆到本地
该存储库包含有关如何克隆和运行NodeJS代码的说明。
克隆代码后,进入项目文件夹并使用以下命令启动应用程序。
node server.js
该应用程序在本地主机端口3000上运行。
使用cURL获取请求
该应用程序具有GET端点/ sample 。 该端点接受名为name的查询参数。
让我们使用curl调用此API端点。
转到新的命令提示符,然后键入以下命令
这将给出以下输出
{ "text":"Hello aditya" }
您还可以使用Curl获得详细的结果。 运行以下命令
-v用于获取详细的输出。
这将给出以下输出。
* Trying ::1...
* TCP_NODELAY set
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost ( 127.0.0.1 ) port 3000 ( #0)
> GET /sample?name = aditya HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.55.1
> Accept: * / *
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 12:36:21 GMT
< Connection: keep-alive
< Content-Length: 23
<
{ "text":"Hello aditya" }* Connection #0 to host localhost left intact
详细结果包含状态码,内容类型,内容长度等详细信息。 它可以用来更好地了解HTTP请求期间发生的情况。
状态码为200,表示HTTP请求成功。
响应的Content-type是JSON。
内容长度指示响应的大小。 此处的响应大小为23个字节。
带cURL的POST请求
该应用程序具有POST端点/ test 。 该端点接受以下格式的帖子正文。
{
"value":"nodejs"
}
为了进行POST调用,请键入以下命令。
curl --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test
-header指示帖子正文的内容类型。 这是JSON。
-d用于发送帖子正文内容。
该命令的输出如下所示。
{"text":"Post Request Value is node JS"}
要获得详细结果,请使用以下命令
curl -v --header "Content-Type: application/json" -d "{\"value\":\"node JS\"}" http://localhost:3000/test
输出如下所示。
* Trying ::1...
* TCP_NODELAY set
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost ( 127.0.0.1 ) port 3000 ( #0)
> POST /test HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.55.1
> Accept: * / *
> Content-Type: application/json
> Content-Length: 19
>
* upload completely sent off: 19 out of 19 bytes
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:03:37 GMT
< Connection: keep-alive
< Content-Length: 41
命令行提供的其他选项
可以使用-H选项修改现有的标头。
运行以下命令将User-Agent标头修改为Dummy Agent
curl -v -H "User-Agent:Dummy Agent" http://localhost:3000/sample?name=adi
上面命令的输出如下所示
* Trying ::1...
* TCP_NODELAY set
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost ( 127.0.0.1 ) port 3000 ( #0)
> GET /sample?name = adi HTTP/1.1
> Host: localhost:3000
> Accept: * / *
> User-Agent:Dummy Agent
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:33:27 GMT
< Connection: keep-alive
< Content-Length: 20
<
{ "text":"Hello adi" }* Connection #0 to host localhost left intact
在上面的输出中,可以看到User-Agent已成为Dummy Agent 。
现在,假设您要删除主机头。 可以通过运行以下命令来完成。
curl -v -H "Host:" http://localhost:3000/sample?name=adi
上面命令的输出在下面给出,可以看到主机不再存在
* Trying ::1...
* TCP_NODELAY set
* connect to ::1 port 3000 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost ( 127.0.0.1 ) port 3000 ( #0)
> GET /sample?name = adi HTTP/1.1
> User-Agent: curl/7.55.1
> Accept: * / *
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Nov 2018 13:38:37 GMT
< Connection: keep-alive
< Content-Length: 20
<
{ "text":"Hello adi" }* Connection #0 to host localhost left intact
-H也可以用于添加新的标头。 可以使用语法curl -v -H "newheader: headervalue"
参考文献
cURL的文档: https ://ec.haxx.se/
有关对HTTP请求使用Curl的更多信息https://ec.haxx.se/http.html
恭喜😄
现在,您知道如何使用cURL进行基本的HTTP请求。 本文仅介绍卷曲实际可以完成的一小部分。
要了解有关curl的更多信息,可以查看上面提供的文档链接。
关于作者
我热爱技术,并关注该领域的进步。
随时通过我的LinkedIn帐户与我联系https://www.linkedin.com/in/aditya1811/
您也可以在Twitter上关注我https://twitter.com/adityasridhar18
我的网站: https : //adityasridhar.com/
最初发布在 adityasridhar.com 。
From: https://hackernoon.com/how-to-easily-use-curl-for-http-requests-db3249c5d4e6