我有一个Python脚本用于连接到Parse.com(远程服务器)并上传文件。该脚本运行在位于公司防火墙后面的服务器上。
import env
import json
import requests
from requests.auth import HTTPProxyAuth
def uploadFile(fileFullPath):
print "Attempting to upload file: " + fileFullPath
proxies = {
"http": "http://10.128.198.14",
"https": "http://10.128.198.14"
}
auth = HTTPProxyAuth('MyDomain\MyUsername', 'MyPassord')
headers = {
"X-Parse-Application-Id": env.X_Parse_APP_ID,
"X-Parse-REST-API-Key": env.X_Parse_REST_API_Key,
"Content-Type": "application/pdf"
}
f = open(fileFullPath, 'r')
files = {'file': f}
r = requests.post(env.PARSE_HOSTNAME + env.PARSE_FILES_ENDPOINT + "/" + env.PARSE_FILE_NAME, files=files, headers=headers, timeout=10, verify=False, proxies=proxies)
print r.text
当我从命令提示符处使用此模块时,我收到以下消息:
ConnectionError thrown. Details: Cannot connect to proxy. Socket error: Tunnel connection failed: 407 Proxy Authentication Required.
我很确定用户名和密码都是正确的。
任何解决方案?谢谢!
答案 0 :(得分:1)
407
错误的原因是代理本身需要进行身份验证。因此,对于您的proxies
字典,请执行以下操作:
proxies = {
"http": "http://user:pass@10.128.198.14",
"https": "http://user:pass@10.128.198.14"
}
填写user
网址中的pass
和proxies
个变量。 Here是指向如何构建代理对象并对其进行身份验证的相关请求文档的链接。