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)

post请求中json和data的区别相关推荐

  1. 接口请求时params与data的区别

    GET请求时,使用params,参数会直接追加至请求字符串(url)后,可以在Postman中测试: axios({method: "get",url: "http:// ...

  2. 接口请求中post与put的区别

    RESTful API RESTful API是一种Web API的设计风格和开发方式,它遵循一组约束和属性,其中最重要的是客户端和服务器之间的无状态通信.在RESTful API中,资源通过URI进 ...

  3. HTTP请求中POST与GET的区别

    一.原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式. HTTP定义了与服务器交互 ...

  4. HTTP请求中GET和POST的区别

    一.原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式. HTTP定义了与服务器交互 ...

  5. ajax中json和文本的区别,json格式字符串--json对象 【ajax_responseText】重点

    JSON.parse(string) JSON.Stringify(object)document.getElementById("id").value=jsonObj    // ...

  6. Post请求中加不加@RequestBody的区别和formedata与JSON传递的区别

    package com.atguigu.boot.controller;import org.springframework.web.bind.annotation.PostMapping; impo ...

  7. http请求中get和post的区别以及其他请求方式

    1.options:返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能) 2.Get:向特定资源发出请求(请求指定页面信息,并返回主题) 3.P ...

  8. axios中params和data的区别

    在开发项目的过程中我们往往忽略了一点,请求接口的传参方式,习惯了post请求就用data,get请求就用params.  params是添加到url的请求字符串中的,用于get请求.服务器并不会读取h ...

  9. requests(二): json请求中固定键名顺序消除键和值之间的空格

    继上一篇requests发送json请求的文章后,实际工作中遇到了以下2种情况. 1:服务端要求json字符串,键名的顺序固定  2.服务端对于接收到的json数据中,若key和value之间有空格, ...

最新文章

  1. Xcode的Architectures、Valid Architectures和Build Active Architecture Only属性
  2. ultraedit连接UNIX
  3. Ruby 学习笔记3
  4. 微信重大更新,mac版可刷朋友圈!可以看,可以评论! 支持M1
  5. MySQL数据库:索引+事务+JDBC
  6. 硬核黑科技、技术大咖、AI 音乐节……科大讯飞全球 1024 开发者节太燃了!
  7. js 原生拖拽,返回到原点
  8. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统
  9. java pdf417_java生成PDF417条码
  10. 毕业论文页码与目录自动生成
  11. 当我们在谈论HTTP队头阻塞时,我们在谈论什么?
  12. 基于百度AI平台Python实现人像动漫画
  13. 融云 java_融云开发者文档
  14. 自制恋爱话术APP永久免费使用
  15. 计算机专业考研要分最低的院校,计算机考研院校难度排行榜
  16. 使用Javascript无限添加QQ好友原理解析
  17. Window自带的定时自动执行程序
  18. _getch()函数的一些使用方法
  19. jquerynbsp;$.fnnbsp;是什么意思
  20. 国企的判断标准是什么 怎么查企业是私企还是国企

热门文章

  1. 【day5-c/c++入门题目-关于“约瑟夫问题”那些事】
  2. mac安装opencv(C++)
  3. 周六带小哞去麦当劳,遇到麦当劳叔叔。
  4. Java基础入门第三版黑马课后习题(编程部分)
  5. MATLAB Central
  6. 画好爆炸效果有哪些技巧?
  7. 电器产品为什么要过安规认证?这些安规知识你了解吗
  8. php-beast源码加密
  9. 大数据集群机房搬迁数据迁移
  10. MySQL计算机机房管理系统_机房管理系统的设计与实现(JSP,MySQL)(含录像)