• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

http post请求传文件报错 invalid character '-' in numeric literal

武飞扬头像
Lucky小黄人
帮助1

headers中不能带上Content-Type参数,否则会报错invalid character '-' in numeric literal,下面是一个案例: 

  1.  
    1 url = get_base_url()
  2.  
    2 params = {}
  3.  
    3 # files={
  4.  
    4 # "data": open('//Users/zhangsan/Desktop/1058789660029222928.jpeg','rb')
  5.  
    5 # }
  6.  
    6 files=[
  7.  
    7 ('data',('1058789660029222928.jpeg',open('/Users/zhangsan/Desktop/1058789660029222928.jpeg','rb'),'image/jpeg'))
  8.  
    8 ]
  9.  
    9 headers = {
  10.  
    10 'timestamp': '1641704337',
  11.  
    11 'authorization': '1D63E6F1F8AF7BD629C684A144683226',
  12.  
    12 'Content-Type': 'application/json;utf-8'
  13.  
    13 }
  14.  
    14
  15.  
    15 resp = requests.request("POST", url, headers=headers, data=params, files=files)
  16.  
    16
  17.  
    17 print(resp.text)

学新通

如果在headers中把Content-Type参数去掉,则会报http: no such file的错误,但是至少文件传上去了,只是没找到文件而已

后来发现后端不是用 data 参数来接收二进制流的,而是用的 file 参数,如下图所示,将参数名改成 file 后,就能正常上传且获取到预期的response了 

  1.  
    1 url = get_base_url()
  2.  
    2 params = {}
  3.  
    3 # files={
  4.  
    4 # "file": open('//Users/zhangsan/Desktop/1058789660029222928.jpeg','rb')
  5.  
    5 # }
  6.  
    6 files=[
  7.  
    7 ('file',('1058789660029222928.jpeg',open('/Users/zhangsan/Desktop/1058789660029222928.jpeg','rb'),'image/jpeg'))
  8.  
    8 ]
  9.  
    9 headers = {
  10.  
    10 'timestamp': '1641704337',
  11.  
    11 'authorization': '1D63E6F1F8AF7BD629C684A144683226',
  12.  
    12 'Content-Type': 'application/json;utf-8'
  13.  
    13 }
  14.  
    14
  15.  
    15 resp = requests.request("POST", url, headers=headers, data=params, files=files)
  16.  
    16
  17.  
    17 print(resp.text)

学新通

参考:python使用http请求POST提交上传二进制Binary文件

其他情况如果把这种错误,可能是是客户端发起请求的参数格式与服务端不一致,如服务端接收的是json格式而请求却提交的form表单。

参考:https://blog.csdn.net/likemiddle/article/details/89924441 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgeikaf
系列文章
更多 icon
同类精品
更多 icon
继续加载