• python用formdata形式上传文件请求


    虽然现在基本上都约定俗成的接口都用json形式请求

    但是不可避免地 有些接口需要传文件流,此时就需要用form-data形式上传了

    for.e:

    存在以下接口,通过接口创建海报图 但需要上传缩略图,

    此时接口的Content-Type就不能是application/json,而是multipart/form-data;

    参数格式也是以表单形式传入

    postman中设置文件流很简单 ,设置问file格式,然后就可以在本地选择文件上传,见下图

     

    实际请求接口就可以成功

     

    使用python完成上方请求 需要明确的请求方式及数据类型以及上传文件 读取文件

    import requests
    import json
    from requests_toolbelt.multipart.encoder import MultipartEncoder


    url='http://XXX.xxx.xxx.xx:9900/api-marketing-center/poster/save'


    data={'activityName':'我是个海报2',
      'backgroundPicUrl':'https://xxxxx/default/f865a1aa66adfe50d005bd840e2c3356.jpg',
      'copywriting':'我是个海报 看看我2',
      'endTime':'2021-08-14 16:00:00',
      'startTime':'2021-08-11 16:00:00',
      'giftPicUrl':'https://xxxxx/file/c363c3173ac7c02393bf60018031073d.PNG',
      'qrCodeUrl':'https://xxxxxx/file/c363c3173ac7c02393bf60018031073d.PNG',
      'posterUrlThumbnail':'文件'
    }
    files = {"posterUrlThumbnail": open('C:/Users/Lenovo/Desktop/格式测试/12.PNG', "rb")}

    headers={'AUTH_MERCHANTS_ID': '76',
    'Authorization': 'Bearer ad8cbdf3-c827-470a-aba5-076f0f3a9628'}

    r=requests.post(url=url,params=data, headers=headers,files=files)

    print(r.json())



    #{'code': 0, 'msg': '操作成功', 'data': None}
    data:输入请求的参数,其中需要注意上传文件流的参数名称

    files = {"posterUrlThumbnail": open('C:/Users/Lenovo/Desktop/格式测试/12.PNG', "rb")}

    posterUrlThumbnail为参数名称用于赋值,打开文件,读取赋值

    上方使用最简单的写死的headers,

    调用requests库的方法去请求

    即可得到结果

    当然也可以复杂点封装个登录方法,去调用登录,获取token以及需要的头部参数


    原文链接:https://blog.csdn.net/LXiaYu123456789/article/details/119698467

  • 相关阅读:
    linq中的AsEnumerable()方法
    c# 一个匿名对象中包含多个子对象的处理方式
    jenkins的安装与启动
    牛客网-2018年湘潭大学程序设计竞赛-F
    poj-1149(最大流)
    hdu-2255(带权二分图)
    bzoj-1191(二分图最大匹配)
    codevs2822
    hdu 5652(并查集)
    hdu—3861(tarjan+二分图)
  • 原文地址:https://www.cnblogs.com/ykcbwdt/p/16381395.html
Copyright © 2020-2023  润新知