如何轻松使用cURL进行HTTP请求

照片由AronUnsplash拍摄

每个开发人员都需要知道一堆有效的工具。 此类工具中的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

现在,假设您要删除主机头。 可以通过运行以下命令来完成。

上面命令的输出在下面给出,可以看到主机不再存在

* 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值