【问题标题】:Python - Multipart form data failed to authenticate using MultipartPostHandler libraryPython - 多部分表单数据无法使用 MultipartPostHandler 库进行身份验证
【发布时间】:2014-09-23 12:11:02
【问题描述】:

我正在使用MultipartPostHandler library 创建多部分形式的数据请求。

我遇到了一个问题,可能需要在库中进行更新。我们正在使用 lighttpd 网络服务器,我们的 cgi-bin 文件夹受用户名和密码保护。

每当我们需要使用该文件夹中的 cgi 文件时,我们都需要使用用户名和密码对其进行身份验证。

当请求中没有附加任何参数时,这可以正常工作,但当请求中有任何关联的参数时会失败。

您能帮我在使用请求中的参数时如何验证 url 吗?

import MultipartPostHandler
import urllib2

def handle_authentication(url):
    """handle_authentication description"""
    try:
        passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
        passman.add_password(None, url, USERNAME, PASSWORD)
        authhandler = urllib2.HTTPBasicAuthHandler(passman)
        opener = urllib2.build_opener(authhandler)
        urllib2.install_opener(opener)
    except urllib2.HTTPError:
        print ERROR_300
        sys.exit(1)

另一个功能:

params = {'BoardType': board_type,
          'SataConfigFile': open(input_path, 'rb')}
opener = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler)
print opener
try:
    handle_authentication(url)
    response = opener.open(url, params)

这不会验证 URL - 你有什么解决方案吗?

【问题讨论】:

    标签: python httprequest urllib2 multipartform-data python-2.6


    【解决方案1】:

    我不确定这是唯一的问题,但您似乎没有正确组合开瓶器。您需要使用 MultiPartPostHandler 和 HttpBasicAuthHandler 作为参数调用 build_opener。

    所以不要使用 install_opener,试试这个:

    import MultipartPostHandler
    import urllib2
    
    def build_authhandler(url):
        passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
        passman.add_password(None, url, USERNAME, PASSWORD)
        authhandler = urllib2.HTTPBasicAuthHandler(passman)
        return urllib2.build_opener(authhandler)
    

    params = {'BoardType': board_type,
              'SataConfigFile': open(input_path, 'rb')}
    auth_opener = build_authhandler(url)
    opener = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler, auth_opener)
    
    try:    
        response = opener.open(url, params)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2013-05-30
      • 2012-12-26
      • 1970-01-01
      • 2011-02-23
      • 2019-05-11
      相关资源
      最近更新 更多