卷曲语句`form输入=@./thefile.pdf`在python请求中

2024-10-04 01:32:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个curl语句,如下所示:

curl -v -include --form input=@./thefile.pdf localhost:8080/processFulltextDocument

我尝试使用请求在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错误。我做错什么了?在

编辑curl语句的标题如下:

curl -v -include --form input=@./samp.pdf 127.0.0.1:8080/processFulltextDocument

^{pr2}$

Tags: 代码importformlocalhosturlinputdatapdf
2条回答

要发送“multipart/form data”POST http请求,请使用files参数:

#!/usr/bin/env python
import requests  # $ pip install requests

r = requests.post('http://127.0.0.1:8080/processFulltextDocument',
                  files=dict(input=open('samp.pdf', 'rb')))
print(r.text) # print response

POST a Multipart-Encoded File。在

尽管@对于curl是唯一的,但是您可以在请求中执行此操作(应该可以这样做):

import requests
Data = {'input': open('./samp.pdf', 'rb')}

url='http://127.0.0.1:8080/processFulltextDocument'
r = requests.post(url,data=Data)
print r.text

更新2:

代码片段错误。将r = requests.post(url,data=Data)更改为r = requests.post(url,files=Data),这样就可以了。复制粘贴错误。在

另请参见:Example on Requests website

更新1: 这将在post请求中将文件作为字段传递。你可以把它当作身体来传递(我想):

^{pr2}$

相关问题 更多 >