代码之家  ›  专栏  ›  技术社区  ›  patrick genkilabs

用rest上传文件

  •  2
  • patrick genkilabs  · 技术社区  · 15 年前

    我使用django和活塞创建了一个restapi,我需要创建一个脚本将文件上传到该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)
    

    当我运行这段代码时,我可以看到params被发送到api,但我不知道如何将文件(f)发送到api:(

    1 回复  |  直到 15 年前
        1
  •  1
  •   lprsd    15 年前

    你应该包括 文件的内容 作为POST数据的一部分,修改请求的头,告诉服务器POST中有一个文件。