我最近开始使用 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/