使用REST上传文件

2 投票
1 回答
2519 浏览
提问于 2025-04-16 00:40

我用Django和Piston创建了一个REST API,现在我需要写一个脚本,把文件上传到这个API。

目前我用的是这段代码:

import urllib
import urllib2

user = 'patrick'
password = 'my_password'
url = 'http://localhost:8000/api/odl/'

password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(
    None, url, user, password
)

auth_handler = urllib2.HTTPBasicAuthHandler(password_manager)

opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)

f = open('test.pdf')

params = {
    'name': 'ODL Name',
}

postData = urllib.urlencode(params)
fh = urllib2.urlopen(url, postData)

当我运行这段代码时,我可以看到参数已经发送到API了,但我不知道怎么把文件(f)发送到API :(

你能帮我吗?

谢谢

1 个回答

1

你需要把文件的内容作为POST数据的一部分,并且修改请求的头部信息,这样才能告诉服务器在这个POST请求里有一个文件。

撰写回答