pycurl equivalent of “curl --data-binary”

我与影子孤独终老i 提交于 2019-12-12 08:44:24

问题


I'd like to know the equivalent of this curl command in pycurl:

curl --data-binary @binary_data_file.bin 'http://server/myapp/method'

Note: The above curl statement uses the POST method. I need to use this for compatibility with my server script.


回答1:


The requests library is meant to keep things like this simple:

import requests
r = requests.post('http://server/myapp/method', data={'aaa': 'bbb'})

Or depending on how the receiving end expects data:

import requests
r = requests.post('http://server/myapp/method',
    data=file('binary_data_file.bin','rb').read())



回答2:


From libcurl, setopt(...) try this option:

CURLOPT_POSTFIELDSIZE

If you want to post data to the server without letting libcurl do a strlen() to measure the data size, this option must be used. When this option is used you can post fully binary data, which otherwise is likely to fail. If this size is set to -1, the library will use strlen() to get the size.

http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPOSTFIELDSIZE



来源:https://stackoverflow.com/questions/11444257/pycurl-equivalent-of-curl-data-binary

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!