python - 是否有 pycurl.FORM_FILE 的替代方法,它接受要发送的字符串或流对象?

标签 python http libcurl pycurl

我最近开始使用 pycurl,目前正在使用 setop pycurl.FORM_FILE。但是我要发送的数据是一个字符串,所以写一个文件只是为了让 next 方法可以读取它是很奇怪的。

所以我的问题是:是否有 pycurl.FORM_FILE 的替代方案,它接受要发送的字符串或流对象(如文件对象)?

它类似于 libcurl 中的 FORM_STREAM。

readdata 和 readfunction 不适用于多部分表单的帖子。

像这样:

import pycurl
c = pycurl.Curl()

c.setopt(c.URL, 'http://someurl')
c.setopt(c.FORM_FILE, 'myfile.gz')
c.perform()

c.close()

会变成:

import pycurl
c = pycurl.Curl()

fobj = open('myfile.gz', 'rb')
c.setopt(c.URL, 'http://someurl')
c.setopt(c.FORM_STREAM, fobj)
c.perform()
fobj.close()
c.close()

提前致谢!

最佳答案

确定找到解决方案。

我一直在寻找的方法是 pycurl.FORM_BUFFER 和 pycurl.FORM_BUFFERPTR。

它的使用可以在下面的测试中找到:https://github.com/pycurl/pycurl/blob/66f2dec7838ed920a45e57520b95e99928396d93/tests/post_test.py

警告:如果你有旧版本的 pycurl,它可能没有这个功能。

关于python - 是否有 pycurl.FORM_FILE 的替代方法,它接受要发送的字符串或流对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690943/

相关文章:

C++ libcurl http响应代码问题

python - 如何使用python批量向mysql插入数据

python - GAE 数据存储使用 Python 过滤不返回任何数据

wordpress - 如何停止将外部 http 链接重定向到 WP 页面上的 https

java - 当请求 Content-Type 为 gzip 时,Jetty 响应 400 Bad Request

http - 如何通过 HTTP get 在 Java 中发送数据?

ruby-on-rails-3 - 尝试在 Windows 上使用 ffi 和 typhoeus gems 但我需要 libcurl

python - MongoDB 文档中的过滤器数组

python - 如何在图像中找到数字并读取它们?

c++ - 从 VC++ 文件发送 HTTP 请求