【发布时间】:2013-12-07 19:53:56
【问题描述】:
我必须将文件连同一些数据发布到 api。 这是我为测试编写的python代码:
fl={'payload' : open('C:/data/log2.txt')}
params = {
'topic':'pos',
'store':storeID,
}
r = requests.post(url,files=fl,data=params)
print r.status
print r.text
但我总是收到一条消息说,“文件格式不正确”
我使用 POSTMAN 测试了 api(用于测试 rest API 的 Chrome 扩展),它似乎与 postman 一起工作我得到了成功响应并发送了文件,这是一个快照。
【问题讨论】:
-
你能发布你得到的堆栈跟踪吗?
-
我没有收到错误消息,我只是收到来自服务器的回复说“文件格式不正确”。
-
听起来您的日志文件格式可能不正确...您的代码可能很好。在您的问题中,您引用了两个不同的文件,
amazonlog.log和log2.txt。确保您的代码中的文件与amazonlog.log使用相同的名称和相同的内容发送。也许你需要一个.log扩展...? -
服务器接受任何文本文件,我使用邮递员用 log2.txt 对其进行了测试,服务器接受它。我现在无法检查,但我会在我恢复工作后立即检查。
-
我尝试使用相同的文件名和内容。虽然它与邮递员一起工作,但它不适用于 python 请求。我怀疑在 python 请求模块中存在与编码相关的错误。对于使用邮递员上传的同一个文件,我在 python 中得到响应: {"status": "Error", "message": "{'payload': [u'File type is not supported']}"}
标签: python http-post python-requests