Python 3.6.7,请求2.21.0
我遇到一个问题,每个解决方案都会给我一个新的错误。
我想要的是:使用请求库在POST命令中发送包含数据的文件。
url_upload = BASE_URL + "upload?action=save"
data = {'data':{'name':'test.txt','contenttype':'text/plain', 'size':37}}
files = {'file': open('/home/user/test.txt', 'rb')}
req = session.post(url=url_upload, files=files, data=data)
最终服务器正在使用Spring(我假设),并且响应文本包含以下错误:
"net.sf.json.JSONException: A JSONObject text must begin with \'{\' at character 1 of name"
所以,我尝试
data = json.dumps(data)
但是,当然请求不希望这样:
ValueError: Data must not be a string.
如果我添加标题:
headers = {'Content-type': 'multipart/form-data'}
org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
我们将不胜感激。
答案 0 :(得分:0)
我需要做的是:
req = session.post(url = url_upload,files = files,data = {'data':json.dumps(data)})
这样,我给函数变量'data'赋予了表单数据变量名'data',其中包含具有键'data'的变量...