zoukankan      html  css  js  c++  java
  • 接口测试request的post请求中json和data区别

    post请求中json和data

    post请求中,可以使用data传递参数,也可以使用json传递参数,那么这两种方式有什么区别呢?

    如果参数为JSON数据,可以直接传入json参数,它将自动编码并将Content-Type的置为application/json
    payload = {'key1': 'value1', 'key2': 'value2'}
    
    r = requests.post("https://httpbin.org/post", json=payload)
    print(r.text)

    如果data传递的参数为字符串,例如【json.dumps(payload)】,则request对参数进行url编码,Content-Type的值为None,所以data传字符串时,一定要在header中指定Content-Type

    payload = {'key1': 'value1', 'key2': 'value2'}
    headers={"Content-Type": "application/json"}
    r = requests.post("https://httpbin.org/post", headers=headers,data=json.dumps(payload))
    print(r.text)

    如果data传递的是字典、元组组成的列表或列表作为值的字典,则request对参数进行url编码,Content-Type的值为application/x-www-form-urlencoded

    # 字典
    payload1 = {'key1': 'value1', 'key2': 'value2'}  
    r = requests.post("https://httpbin.org/post", data=payload1)
    # 元组组成的列表
    payload2 = [('key1', 'value1'), ('key1', 'value2')]  
    r = requests.post("https://httpbin.org/post", data=payload2)
    # 列表作为值的字典
    payload3 = {'key1': ['value1', 'value2']}  
    r = requests.post("https://httpbin.org/post", data=payload3)

    转载:https://www.cnblogs.com/lexus168/p/12678182.html

    分享促进成长
  • 相关阅读:
    Spring中依赖注入的四种方式
    使用 EasyMock 更轻松地进行测试
    HDU2196 Computer(树形DP)
    BZOJ2125: 最短路(圆方树)
    虚树入门
    BZOJ2286: [Sdoi2011]消耗战(虚树/树形DP)
    Codeforces Round #487 (Div. 2)
    Educational Codeforces Round 45 (Rated for Div. 2)
    BZOJ3675: [Apio2014]序列分割(斜率优化)
    BZOJ2761: [JLOI2011]不重复数字(map)
  • 原文地址:https://www.cnblogs.com/hpzyang/p/14804452.html
Copyright © 2011-2022 走看看