我正在使用bash脚本向RESTful API发送POST请求。
内容长度不正确。请帮忙看看我算错了没有。
POST请求是否在我的请求中添加了更多的字节?
请求正文(这与正文完全相同,只是信息被X、X或0屏蔽(:
--1234
Content-Disposition: form-data; name="xxxxx"
XXX-XX
--1234
Content-Disposition: form-data; name="xxx_xxxx"
XXXX00000000Xx0000000000000000000XX00.pdf
--1234
Content-Disposition: form-data; name="xxx_xx"
XXXX00000000Xx0000000000000000000XX00
--1234--
我将其设置为271,它API捕获了以下内容:
--1234
Content-Disposition: form-data; name="xxxxx"
XXX-XX
--1234
Content-Disposition: form-data; name="xxx_xxxx"
XXXX00000000Xx0000000000000000000XX00.pdf
--1234
Content-Disposition: form-data; name="xxx_xx"
XXXX00000000Xx0000000000000000000XX00
我的建议是而不是重新发明轮子。cURL等工具以方便可靠的方式创建多部分/表单数据请求,无需自行计算内容长度:
以下是如何将请求指定为cURL命令:
curl
--request POST
--header 'Content-Type: multipart/form-data'
--form 'xxxxx=XXX-XX'
--form 'xxx_xxxx=XXXX00000000Xx0000000000000000000XX00.pdf'
--form 'xxx_xx=XXXX00000000Xx0000000000000000000XX00'
$'http://example.com/'
下面是您得到的原始请求的外观。请注意,cURL已包含正确的内容长度标头:
POST / HTTP/1.1
Host: example.com
User-Agent: curl/7.60.0
Accept: */*
Content-Length: 416
Content-Type: multipart/form-data; boundary=------------------------b5a1c465b6242b10
Connection: close
--------------------------b5a1c465b6242b10
Content-Disposition: form-data; name="xxxxx"
XXX-XX
--------------------------b5a1c465b6242b10
Content-Disposition: form-data; name="xxx_xxxx"
XXXX00000000Xx0000000000000000000XX00.pdf
--------------------------b5a1c465b6242b10
Content-Disposition: form-data; name="xxx_xx"
XXXX00000000Xx0000000000000000000XX00
--------------------------b5a1c465b6242b10--