JAVASCRIPTandroid开发技巧程序员每日5分钟

[程序员每日5分钟]你不知道的 POST

2017-01-13  本文已影响404人  anonymous66

很多人在使用 POST 的时候其实是不知道 <b>Content-Type</b> 的,以至于在看一些官方的 API 的时候懵逼了,完全没见过也不知道这个是什么 POST 啊。

黑人问号.jpg

那么我们今天,就来学习一下,<b>POST</b> 方式下 <b>Content-Type</b> 的几种方式。

本文后端以 <b>PHP</b> 为例。(以后也都是)

一、application/x-www-form-urlencoded

<b>application/x-www-form-urlencoded</b> 是最常用的方式,普通的表单提交、js异步请求都默认都是通过这种方式。 用$_POST即可获取数据。

报文
POST  HTTP/1.1
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded

name=anonymous66&sex=man
服务端代码
var_dump($_POST);
输出
array(2) { 
    ["name"]  => string(6) "anonymous66"
    ["sex"]   => string(3) "man"
}

二、multipart/form-data

<b>multipart/form-data</b> 用在有上传文件的时候。$_FILE 获取文件内容,$_POST 获取数据。

报文
POST  HTTP/1.1
Host: 127.0.0.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="name"

anonymous66
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="sex"

man
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="avater"; filename=""
Content-Type: 

----WebKitFormBoundary7MA4YWxkTrZu0gW
服务端代码
var_dump($_POST); 
var_dump($_FILES);
输出
array(2) { 
    ["name"]   => string(6) "anonymous66" 
    ["sex"]    => string(3) "man"
}

array(1) {
    ["avater"]=> array(5) { 
        ["name"]      => string(36) "0CD0A5235EDCDAAB4AFE05B25695E696.png" 
        ["type"]      => string(9) "image/png" 
        ["tmp_name"]  => string(45) "/Applications/XAMPP/xamppfiles/temp/phpeFfc9e" 
        ["error"]     => int(0) 
        ["size"]      => int(9485) 
    }
}

三、raw

raw 可以上传 jsonxml文本 等等。用 php://input 获得内容。

以下是 raw 具体的方式:
text/plain
text/html
text/xml
application/json
application/xml
application/javascirpt

报文
POST  HTTP/1.1
Host: 127.0.0.1
Content-Type: application/json

{ 
    "user": "anonymous66",
    "sex": "man"
}
服务端代码
var_dump( file_get_contents('php://input') );
输出
string(48) "{ "user": "anonymous66", "sex": "man"}"

四、总结

怎么样,学习很简单吧?点个关注、点个喜欢、打赏都是对我的支持。

上一篇下一篇

猜你喜欢

热点阅读