如何使用cURL发送带有正文,标头和HTTP参数的POST?

用户名

我找到了很多有关如何在cURL中使用简单POST命令的示例,但没有找到有关如何发送完整的HTTP POST命令的示例,其中包括:

  • 标头(基本身份验证)
  • HTTP参数(s=1&r=33
  • 主体数据,一些XML字符串

我发现的是:

echo "this is body" | curl -d "ss=ss&qq=11" http://localhost/

那是行不通的,它将HTTP参数作为正文发送。

蒂娜

声誉不足,无法发表评论,因此请留下答案以希望对您有所帮助。

curl -L -v --post301 --post302 -i -X PUT -T "${aclfile}"  \
  -H "Date: ${dateValue}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${s3Key}:${signature}" \
  ${host}:${port}${resource}

这就是我用于S3存储桶acl put操作的内容。标题位于-H中,而作为XML文件的主体位于-T之后的$ {aclfile}中。您可以从输出中看到:

/aaa/?acl
* About to connect() to 192.168.57.101 port 80 (#0)
*   Trying 192.168.57.101...
* Connected to 192.168.57.101 (192.168.57.101) port 80 (#0)
> PUT /aaa/?acl HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.57.101
> Accept: */*
> Date: Thu, 18 Aug 2016 08:01:44 GMT
> Content-Type: application/x-www-form-urlencoded; charset=utf-8
> Authorization: AWS WFBZ1S6SO0DZHW2LRM6U:r84lr/lPO0JCpfk5M3GRJfHdUgQ=
> Content-Length: 323
> Expect: 100-continue
>
< HTTP/1.1 100 CONTINUE
HTTP/1.1 100 CONTINUE

* We are completely uploaded and fine
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< x-amz-request-id: tx00000000000000000001f-0057b56b69-31d42-default
x-amz-request-id: tx00000000000000000001f-0057b56b69-31d42-default
< Content-Type: application/xml
Content-Type: application/xml
< Content-Length: 0
Content-Length: 0
< Date: Thu, 18 Aug 2016 08:01:45 GMT
Date: Thu, 18 Aug 2016 08:01:45 GMT

<
* Connection #0 to host 192.168.57.101 left intact

如果url参数包含特殊符号(如“ +”),请对每个参数(包含特殊符号)使用--data-urlencode:

curl -G -H "Accept:..." -H "..." --data-urlencode "beginTime=${time}+${zone}" --data-urlencode "endTime=${time}+${zone}" "${url}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用PHP(cURL)中的post方法在带有标头的正文中发送JSON数据

如何发送带有标头参数的HTTP请求?

将带有标头和正文请求的 HTTP POST 转换为 Python(Telerik Fiddle)

如何在带有参数和标头的Android Volley库中使用POST请求?

rspec如何测试带有正文和标头的http调用

afnetworking 3.0迁移:如何使用标头和HTTP正文进行POST

如何使用标头和正文构造python post请求

如何通过curl调用使用HTTP请求发送标头?

如何使用Alamofire 4在Swift 3中发送带有参数和正文的JSON数据的POST请求?

如何使用Apache Camel转储与HTTP组件一起发送的HTTP正文和标头

Python发送带有标头的POST

带有自定义标头和正文的Ruby POST?

带有请求标头和正文的Alamofire POST请求

Web API - 包括标头和正文的 HTTP Post 请求

为什么我的带有json参数和标头的HTTP POST请求返回400错误请求?

如何使用Volley发送带有JSON正文的POST请求?

如何在Spring Boot中读取带有标头和正文的JSON

邮递员-如何查看带有标头和正文数据并替换了变量的请求

在vbscript中带有请求标头和有效负载的POST CURL

如何使用带有标头和.so文件的库?

使用Jquery AJAX的POST标头和正文

使用标头和正文进行HTTP发布

如何使用cURL发送带有请求参数的POST请求?

发送带有标头的HTTP GET请求

发送带有对象标签的HTTP请求标头

Alamofire:用于编写带有url,方法,参数,标头和编码的POST请求的语法

使用Flash发送带有自定义标头的POST请求

使用Volley发送POST参数和标头时的代码响应代码400

如何发送带有请求的HTTP / 2伪标头?