Vig*_*nan 40 html http xmlhttprequest httprequest
在阅读有关POST的内容并获取方法时,有一个语句,例如"当使用post方法时它使用HTTP请求Body.它是什么意思"HTTP请求主体".?
Maz*_*zzu 46
HTTP正文数据是紧接在标题之后的HTTP事务消息中传输的数据字节(如果有的话)(在HTTP/0.9的情况下没有传输标题).
大多数HTTP请求都是没有主体的GET请求.但是,使用正文模拟请求对于正确地强调代理代码并测试处理此类请求的各种挂钩非常重要.大多数HTTP请求与主体使用POST或PUT请求方法.
邮件正文
消息正文部分对于HTTP消息是可选的,但如果它可用,则它用于携带与请求或响应相关联的实体主体.如果实体主体是关联的,那么通常Content-Type和Content-Length标题行指定相关主体的性质.
消息体是承载来自服务器的实际HTTP请求数据(包括表单数据和上载等)和HTTP响应数据(包括文件,图像等)的消息体.以下是邮件正文的简单内容:
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有关HTTP消息和正文的更多详细信息,请参阅w3org链接
以下html <form>:
<form action="http://localhost:8000/" method="post" enctype="multipart/form-data">
<label>Name: <input name="myTextField" value="Test"></label>
<label><input type="checkbox" name="myCheckBox"> Check</label>
<label>Upload file: <input type="file" name="myFile" value="test.txt"></label>
<button>Send the file</button>
</form>
Run Code Online (Sandbox Code Playgroud)
将发送此HTTP 请求(这是一种HTTP 消息):
POST / HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=---------------------------8721656041911415653955004498
Content-Length: 465
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myTextField"
Test
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myCheckBox"
on
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myFile"; filename="test.txt"
Content-Type: text/plain
Simple file.
-----------------------------8721656041911415653955004498--
Run Code Online (Sandbox Code Playgroud)
线POST / HTTP/1.1到Content-Length: 465是HTTP报头,而其余的-以下的空线-对应于HTTP消息体(也称为内容)。
那么如何在后端/服务器端访问这些数据呢?
不同的服务器语言(例如 Go-lang、Node.js、PHP 等)有不同的方法来解析http body来自http post request. 在 Node.js 中,通常使用body-parser,它是一个解析中间件函数(参见下面的示例)。
// Node.js
// OBSERVE: YOU NEED THE BODY-PARSER MIDDLEWARE IN ORDER TO DO THIS!
?
var data1 = req.body.myTextField;
var data2 = req.body.myCheckBox;
var data3 = req.body.myFile;
?
Run Code Online (Sandbox Code Playgroud)
资料来源:
小智 5
一个常见的用例是需要 JSON 格式数据的 API。下面是来自 Postman 的示例代码片段,其中 API 是 Azure 函数,请求正文是 JSON:
POST /api/ValidateTwitterFollowerCount HTTP/1.1
Host: myazurefunction.azurewebsites.net
Content-Type: application/json
cache-control: no-cache
Postman-Token: XXXXXXX-XXXXX-XXXXXX
{
"followersCount" : 220,
"tweettext":"#Stack Overflow rocks",
"Name": "John Doe"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62222 次 |
| 最近记录: |