python - 上传文件休息

标签 python rest upload file-upload

我使用 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 :(

你能帮帮我吗?

谢谢

最佳答案

您应该将文件的内容作为 POST 数据的一部分,并修改请求的 header ,以告知服务器在 post 中有一个文件。

关于python - 上传文件休息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157568/

相关文章:

python - 在 Google App Engine 之外使用 webapp2 提供样式表

WCF Rest 服务客户端 - 参数名称区分大小写

java.security.cert.CertificateException : No subject alternative names matching IP address

javascript - Jquery 文件 uploader blueimp,意外的 token /字符

javascript - JQuery 上传、预览、裁剪

python - 模式对话框卡住整个应用程序

python - python 期中考试任务,字典中的列表,列表中的字典

python - 如何从列表中检索最小唯一值?

java - Spring RestTemplate : How to repeatedly check Restful API Service?

linux - 如何更改服务器用于 WAR 需求和文件上传的 tmp 文件夹位置?