【发布时间】:2016-03-19 04:51:22
【问题描述】:
我有一个 curl 声明,取自 link:
curl -v -include --form input=@./thefile.pdf localhost:8080/processFulltextDocument
我正在尝试使用 Requests 在 Python 中复制上述语句,因此我正在使用以下代码
import requests
Data = {'input': './samp.pdf'}
url='http://127.0.0.1:8080/processFulltextDocument'
r = requests.post(url,data=Data)
print r.text
但是,我收到 415 错误。我做错了什么?
EDIT curl语句的头部如下:
curl -v -include --form input=@./samp.pdf 127.0.0.1:8080/processFulltextDocument
* Couldn't find host 127.0.0.1 in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> POST /processFulltextDocument HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 127.0.0.1:8080
> Accept: */*
> Content-Length: 549488
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------df1c59f42e57cbf4
>
< HTTP/1.1 100 Continue
HTTP/1.1 100 Continue
【问题讨论】:
-
使用
@作为文件名特定于curl,参见例如unix.stackexchange.com/questions/144479/… -
@jonrsharpe 我删除了
@,但我仍然收到错误 -
那么您只是发布文件名。如果你不理解你复制的代码,翻译它几乎是不可能的。
-
@jonrsharpe 我也试过
{'input': open('./samp.pdf', 'rb')},但仍然报错 -
作为参考,假设 HTTP 错误代码被正确使用,415 是一个“不支持的媒体类型”HTTP 错误。
标签: python curl python-requests