我想打开这个curl命令:
curl -v -k -X PUT -u user:passwd --data-binary @somefile -H 'Content-Type:text/plain' https://192.168.0.22/dir/subdir
插入python request.put命令。
我在该论坛上看到了很多POST转换的示例,但是'--data-binary @somefile'类型的参数似乎没有翻译。
我至少尝试了以下两种安排:
auth = ('user', passwd)
headers = {'Content-Type': 'text/plain'}
data = '-v -k -X --data-binary @somefile'
requests.put(uri, auth=auth, headers=headers, data=data, verify=False)
auth = ('user', passwd)
headers = {'Content-Type': 'text/plain'}
somefile=open('somefile','rb')
requests.put(uri, auth=auth, headers=headers, data={'somefile': somefile}, verify=False)
给定的curl命令可以在命令提示符下使用,但是我似乎无法将正确的语法引入python中。
任何人都可以阐明我接下来可以尝试的方法吗?
谢谢
q位
答案 0 :(得分:0)
将文件处理程序作为数据发送,而不是将其保存在字典中
auth = ('user', passwd)
headers = {'Content-Type': 'text/plain'}
somefile=open('somefile','r')
requests.put(uri, auth=auth, headers=headers, data=somefile, verify=False)
或
file = {'file': ('somefile', open('somefile','r'), 'text/plain' )}
requests.put(url, auth=auth, headers=headers, files=file, verify=False)
而且您无需读取文件内容,requests
已经对可流动的data
和files
参数进行了此操作。
答案 1 :(得分:0)
这是使脚本能够加载文件的代码:
somefile = open('somefile','r')
response = requests.put(uri, auth=auth, headers=headers, files={'--data-binary':somefile}, verify=False)
感谢您的帮助。
谢谢
q位