lexiforest / curl_cffi

Python binding for curl-impersonate fork via cffi. A http client that can impersonate browser tls/ja3/http2 fingerprints.
https://curl-cffi.readthedocs.io/
MIT License
2.52k stars 266 forks source link

无法上传文件[BUG] #273

Closed huxuyf closed 8 months ago

huxuyf commented 8 months ago
from curl_cffi import requests,CurlMime

url = "要上传的网页"
file_path = "D\\我的图片.jpg"
content_type = "image/jpeg"
mime = CurlMime()
mime.addpart(name='xxxx.jpg',content_type=content_type,filename='yyyy.jpg',local_path=file_path)
response = requests.request('POST', url, multipart=mime)

脚本比较简单,在运行到倒数第二行就报错了。

image_2024-03-13_21-24-01

出错的代码在这个地方: image_2024-03-13_21-25-08

curl_mime_filedata(part,local_path) 这个代码不知道还有什么条件?

另外,curl_cffi的requests为什么不跟requests一样支持files参数?

perklet commented 8 months ago

应该是不支持中文路径,你换个英文路径试试呢?requests 的 files 参数太乱了,好几种不同的 tuple,没法加类型注解,所以干脆自定义了一种格式。

huxuyf commented 8 months ago

应该是不支持中文路径,你换个英文路径试试呢?requests 的 files 参数太乱了,好几种不同的 tuple,没法加类型注解,所以干脆自定义了一种格式。

试了一下还真是如此,没有中文路径的情况下是可以构建mime了。不过,上传文件遇到中文路径应该比较常见的。还有之前看到路径已经encode了,根本没想到还会有问题。