自己做一个网站一年的费用,门户网站建设模式包括网站群和,建购物的网站需要多少钱,把html变成wordpress主题HTTP 的 POST 请求通常是用于提交数据#xff0c;可以通过这篇文章来了解各种提交方式#xff1a;四种常见的 POST 提交数据方式。做 Web 后端开发时#xff0c;不可避免地要自己给自己发请求来调试接口#xff0c;这里要记录的内容是如何使用命令行工具 curl 来进行各种方…HTTP 的 POST 请求通常是用于提交数据可以通过这篇文章来了解各种提交方式四种常见的 POST 提交数据方式。做 Web 后端开发时不可避免地要自己给自己发请求来调试接口这里要记录的内容是如何使用命令行工具 curl 来进行各种方式的 POST 请求。
application/x-www-form-urlencoded
最常见的一种 POST 请求用 curl 发起这种请求也很简单。 1$ curl localhost:3000/api/basic -X POST -d helloworld
multipart/form-data
这种请求一般涉及到文件上传。后端对这种类型请求的处理也复杂一些。 1$ curl localhost:3000/api/multipart -F rawraw.data -F helloworld
application/json 1$ curl localhost:3000/api/json -X POST -d {hello: world} --header Content-Type: application/json
跟发起 application/x-www-form-urlencoded 类型的 POST 请求类似-d 参数值是 JSON 字符串并且多了一个 Content-Type: application/json 指定发送内容的格式。
这个例子和 application/x-www-form-urlencoded 中的例子发起的请求到了 Web 后端经过解析后得到的结果都是 hello: world 键值对。
文件内容作为要提交的数据
如果要提交的数据不像前面例子中只有一个 hello: world 键值对数据比较多都写在命令行里很不方便也容易出错那么可以把数据内容先写到文件里通过 -d filename 的方式来提交数据。这是 -d 参数的一种使用方式所以前面用到 -d 参数的地方都可以这样用。
实际上就是把 -d 参数值写在命令行里变成了写在文件里。跟 multipart/form-data 中上传文件的 POST 方式不是一回事。 符号表明后面跟的是文件名要读取这个文件的内容作为 -d 的参数。
例如有一个 JSON 文件 data.json 内容如下: 1
2
3
4
5{hello: world,xxx: yyy,a: [ooo, mmm]
}
就可以通过 1$ curl localhost:3000/api/json -X POST -d data.json --header Content-Type: application/json
来提交数据。
如果要用 application/x-www-form-urlencoded 方式提交后端解析出来同样的数据那么 -d 的参数是这样的注意数组参数的写法 1helloworldxxxyyya[]oooa[]mmm
把这个字符串直接作为 -d 的参数或者把它写到文件 data.txt 然后通过 -d data.txt 的方式发起 POST 请求行为和结果是一样的。 1
2
3$ curl localhost:3000/api/basic -X POST -d helloworldxxxyyya[]oooa[]mmm$ curl localhost:3000/api/basic -X POST -d data.txt