http 协议中post请求数据格式
2021-01-18 21:12
标签:har target 实例 div add 添加 ima 就会 ref 这篇文章也有详细说过:https://www.cnblogs.com/QiKa/p/12863127.html http 协议中post请求数据格式 标签:har target 实例 div add 添加 ima 就会 ref 原文地址:https://www.cnblogs.com/QiKa/p/13341367.htmlHTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中
1、application/x-www-form-urlencoded
#这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据
如:Content-Type: application/x-www-form-urlencoded ; charset=utf-8
2、multipart/form-data
使用表单上传文件时,必须让 form 的 enctyped 等于这个值
如:
POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=---WebKitFormBoundaryrGKCBY7qhFd3TrwA ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"
title ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png" Content-Type: image/png
3、application/json
application/json把它作为请求头,用来告诉服务端,消息主体是序列化后的 JSON 字符串
4、text/xml
它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范
实例:------------------------------------------------------------
Python在调用外部http请求时,post请求进行传 请求体body
1、application/x-www-form-urlencoded
import urllib
url = "http://www.example.com"
body_value = {"package": "com.tencent.lian","version_code": "66" }
body_value = urllib.urlencode(body_value)
request = urllib2.Request(url, body_value)
request.add_header(keys, headers[keys])
result = urllib2.urlopen(request ).read()
2、multipart/form-data
需要利用python的poster模块,安装poster:pip install poster
代码:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
url = "http://www.baidu.com"
body_value = {"package": "com.tencent.lian","version_code": "77" }
register_openers()
datagen, re_headers = multipart_encode(body_value)
request = urllib2.Request(url, datagen, re_headers)
# 如果有请求头数据,则添加请求头
request .add_header(keys, headers[keys])
result = urllib2.urlopen(request ).read()
3、application/json
import json
url = "http://www.baidu.com"
body_value = {"package": "com.tencent.lian","version_code": "77" }
register_openers()
body_value = json.JSONEncoder().encode(_value)
文章标题:http 协议中post请求数据格式
文章链接:http://soscw.com/index.php/essay/43815.html