php和go获取请求参数的不同方式

php获取请求参数

$_GET

$_GET不管请求方式是不是GET,只要参数在query_string就可以获取到

$_POST

必须满足请求方式为POST,content-type为application/x-www-form-urlencoded 或者 multipart/form-data

php://input

1.content-type为multipart/form-data (一般用来上传文件)
请求方式为POST,只能拿到一个空字符串
请求方式为其他,可以得到一个以boundary分割的字符串,使用中一般也不会处理这个


image.png

2.content-type为application/x-www-form-urlencoded
获取到的是一个key1=value1&key2=value2的字符串,需要urldecode
3.content-type为其他
获取到的是一个原样字符串。根据content-type自行解析

go获取请求参数

go获取请求参数是借助net/http包里的request

request.URL.Query()

用来获取query_string里的参数,得到一个集合。可以使用.Get(key)或者request.URL.Query()[key]获取指定参数的值。

request.Form

获取query_string 和 请求实体中的 (请求实体中的 content-type 必须为x-www-form-urlencoded)

request.PostForm

获取请求实体中的 (请求实体中的 content-type 必须为x-www-form-urlencoded)

request.Form和request.PostForm 之前必须先调用一下request.ParseForm()。

request.Body

有点类似于php://input,可以用这个s,_:=ioutil.ReadAll(request.Body)解析

你可能感兴趣的:(php和go获取请求参数的不同方式)