首页 > 编程语言 >Python requests模块POST提交请求,不同Content-type对应的参数示例

Python requests模块POST提交请求,不同Content-type对应的参数示例

时间:2024-01-25 10:57:54浏览次数:35  
标签:content form 示例 Python data Content json type

1.'content-type':'application/x-www-form-urlencoded'

data参数提交文本或字典都可以
headers为空时,data提交content-type默认也是application/x-www-form-urlencoded

requests.post(url,headers={'content-type':'application/x-www-form-urlencoded'},data='f=10') 
requests.post(url,headers={'content-type':'application/x-www-form-urlencoded'},data={'f':10}) 

2.'content-type':'application/json'

data参数提交或json参数提交
data参数提交:注意str必须是json.dumps()转换的标准的json字符串,而非str(),这两者并不完全等同。
json参数提交:模块会自动将dict转换为json提交。

requests.post(url,headers={'content-type':'application/json'},data=json.dumps({'f':10}))
requests.post(url,headers={'content-type':'application/json'},json={'f':10}) 

3.'content-type':'text/xml'

data参数提交<bytes>

  • 通常用于上传xml格式文本等;将文本<str>.encode("utf-8")编码为bytes类型上传
requests.post(url,headers={'content-type':'text/xml'},data='<xml......>'.encode("utf-8"))

4. 'content-type':'multipart/formdata'

  • files参数提交<dict>
  • 用于上传文件;通常Content-Type中除了Content-Type: multipart/form-data,还有个boundary=随机字符串,该项的作用是当作提交内容的分隔符,构造files时用不到可以忽略。
Request Headers
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzf3ou2ZJHNJq9V0N
------------------------------------------------------------
FormData
    file: (binary)
    else1: xxx1
    else2: xxx2
------------------------------------------------------------
FormData    view source
    ------WebKitFormBoundaryzf3ou2ZJHNJq9V0N
    Content-Disposition: form-data; name="file"; filename="test.jpg"
    Content-Type: image/jpeg


    ------WebKitFormBoundaryzf3ou2ZJHNJq9V0N
    Content-Disposition: form-data; name="else1"

    xxx1
    ------WebKitFormBoundaryzf3ou2ZJHNJq9V0N
    Content-Disposition: form-data; name="else2"

    xxx2
    ------WebKitFormBoundaryzf3ou2ZJHNJq9V0N--

如下方式提交

files = {
        "file":("test.jpg", open(r"D:\test\test.jpg",'rb')),
        "else1": (None,"xxx1"),
        "else2": (None,"xxx2")
    }
r = requests.post(url,files=files)

标签:content,form,示例,Python,data,Content,json,type
From: https://www.cnblogs.com/hanfe1/p/17986676

相关文章

  • python中for循环及用法详解
    1、for循环for循环的语法格式如下:1for迭代变量in字符串|列表|元祖|字典|集合:2代码块迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;2、用法2.1、for循环遍历数值1print("计算1+2+3+...+100的结果为:")2sum=0......
  • 用C++11打造智能观察者模式:详解实现步骤完整示例代码
     观察者模式是一种行为设计模式,其中一个对象(主题)维护其依赖对象(观察者)的列表,当主题的状态发生变化时,它通知所有观察者。以下是一个使用C++11实现观察者模式的简单例子:定义观察者接口(Observer): 创建一个观察者接口,该接口包含观察者需要实现的更新方法。这个接口可以包含其他......
  • Python设计模式:你的代码真的够优雅吗?
    当涉及到代码优化时,Python作为一种高级编程语言,具有广泛的应用领域和强大的功能。在软件开发中,设计模式是一种被广泛采用的解决问题的方案,它提供了一种在特定情境中重复使用的可行方案。在Python中,有许多设计模式可以用来优化代码。其中两种常见的设计模式是单例模式和工厂模式。......
  • Python - 程序体验
        CASE:输入某年某月某日,判断这一天是这一年的第几天?#输入某年某月某日,判断这一天是这一年的第几天?importdatetimedtstr=input('Enterthedatetime:(20240124):')dt=datetime.datetime.strptime(dtstr,"%Y%m%d")another_dtstr=dtstr[:4]+'0101'ano......
  • Python:Selenium爬虫
    常用语法驱动常用方法driver.maximize_window()#最大化浏览器driver.set_window_size(w,h)#设置浏览器大小单位像素driver.set_window_position(x,y)#设置浏览器位置driver.back()#后退操作driver.forward()......
  • PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克
    原文链接:http://tecdat.cn/?p=27099最近我们被客户要求撰写关于蒙特卡罗的研究报告,包括一些图形和统计输出。金融资产/证券已使用多种技术进行建模。该项目的主要目标是使用几何布朗运动模型和蒙特卡罗模拟来模拟股票价格。该模型基于受乘性噪声影响的随机(与确定性相反)变量该项......
  • Python 变量?对象?引用?赋值?一个例子解释清楚
    哈喽大家好,我是咸鱼。前天有个小伙伴找到我,给了我一段python代码:a=[1,2]a[1]=aprint(a[1])然后问我为什么结果是[1,[...]],我一看这个问题有意思,我说三言两语解释不清楚,我写篇文章到时候你看下吧,于是有了今天这篇文章。在正式开始之前,让我们先弄清楚一些概念。对......
  • Python三方库:Pika(RabbitMQ基础使用)
    Python有多种插件都支持RabbitMQ,本文介绍的是RabbitMQ推荐的Pika插件。使用pip直接安装即可pipinstallpika。一、RabbitMQ简介1.MQ简介MQ(MessageQueue,消息队列),是一个在消息传输过程中保存消息的容器,多用在分布式系统之间进行通信。MQ优势应用解耦:提高系统容错性和可......
  • Python处理Excel表格的终极指南
    案例学Python(进阶篇)源代码.zip 链接:https://pan.quark.cn/s/c00aefe52fdc案例学Python(基础篇)源代码.zip 链接:https://pan.quark.cn/s/15c0b553b6b8引言Excel表格在数据处理和日常办公中扮演着不可或缺的角色。本文将详细介绍如何使用Python中的openpyxl库来处理Excel文件,......
  • python之内置函数
    内置函数                    1.absdefabs(*args,**kwargs):#realsignatureunknown"""Returntheabsolutevalueoftheargument."""pass翻译:返回参数的绝对值1#!/usr/bin/python2print(abs(-2))#绝对值View......