Content-Type: multipart/form-data

今天遇到一种 Content-Type=multipart/form-data 的post请求,以下是Charles抓到的包
  • 从上面的multipart/form-data格式发送的请求的样式来看,它包含了多个 Parts,每个 Part 都包含头信息部分,Part 头信息中必须包含一个Content-Disposition,其他的头信息则为可选项, 比如Content-Type等。

  • Content-Disposition包含了type和 一个名字为nameparametertypeform-dataname参数的值则为表单控件的名字,如果是文件,那么还有一个filename参数,值就是文件名。
    例如:Content-Disposition: form-data; name="mobile"; filename="***.txt"

  • boundary每个部分使用--boundary分割开来,最后一行使用--boundary--结尾

接下来是python模拟post请求
  • headers里一定不要加Content-Type
import requests

headers = {
    'Cookie': '',
    'User-Agent': 'YDT_ANDROID_CLIENT_V1.0.1',
    'Host': '121.196.225.245:28443',
    'Connection': 'Keep-Alive',
    'Accept-Encoding': 'gzip',
}
url = 'https://121.196.225.245:28443/ydtservice/app/ssl/user/v1/exist'
files = {'mobile': (None, '18832903103')}
res = requests.post(url, files=files, headers=headers, verify=False)
print(res.text)
结果:

{"msg":"OK","code":0,"act":"/ydtservice/app/ssl/user/v1/exist","data":false}

你可能感兴趣的:(Content-Type: multipart/form-data)