接口自动化(三):Post请求里Content-Type与请求体参数关系

在接口自动化代码编写过程中,发现post里的请求参数一直报错;然后查看登录接口,请求参数是以application/x-www-form-urlencoded进行编码,但是传入的值却为json类型。

1、理清Post请求与消息体的关系

Post请求相对get来说,有多种编码方式,但参数一定是在请求体里。Content-Type的作用是,告诉服务器请求体编码方式是什么,按照它给的标准解析数据就行了。


2、Content-Type主要分类

    2.1 application/x-www-form-urlencoded

    以form表单形式提交数据,数据按照 key1=val1&key2=val2 的方式进行编码。

    requests库里,post方法参数data与json默认都为None,结合form表单data可能的值(字典、元祖或列  表),最后传参为data且类型是字典

   res = requests.post(url,data=data,header=None)


*图片


  2.2 text/xml

    它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范


    2.3 application/json

    以json串提交数据;同理,这里传参为json,涉及到json转字典

   json格式: data='{"key1":"vaule1","key2":"value2"}'

    json.dumps(data)

     res = requests.post(url,data= json.loads(data),header=None)或

    res = requests.post(url,json=data,header=None)


    2.4 multipart/form-data

    以multipart形式上传文件

    fp = open (filename,"rb")

     res = requests.post(url,files = fp,header=None)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容