407使用python请求从代理响应

时间:2015-08-17 07:03:42

标签: python python-requests

以下是我使用的代码。我正在使用最新的python requests。我使用 python 2.7 从以下请求获得var myApp = angular.module('myApp',[]); myApp.controller('loginCtrl', function ($scope, $http) { $http({ url: "/admin/auth/authenticatelogin", method: "POST", headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: $.param({login: 'abc@abc.com', password: 'xyzxyz', rememberMe: ''}) }).success(function(data, status, headers, config) { $window.location.href= "index/index"; $scope.data = data; }).error(function(data, status, headers, config) { $scope.status = status; }); }); 响应。 奇怪的是,我在请求中使用407而不是https时得到了503响应。

http

输出:回复[503]

response = requests.get(query, proxies={'https': "https://username:password@104.247.XX.XX:80"}, headers=headers, timeout=30, allow_redirects=True)
print response

输出:回复[407]

但是同样的代码正在我的amazon ec2实例上运行。虽然我想在本地机器上运行。

response = requests.get(query, proxies={'http': "http://username:password@104.247.XX.XX:80"}, headers=headers, timeout=30, allow_redirects=True)
print response

2 个答案:

答案 0 :(得分:4)

from requests.auth import HTTPProxyAuth

proxyDict = { 
          'http'  : '77.75.105.165', 
          'https' : '77.75.105.165'
        }
auth = HTTPProxyAuth('username', 'mypassword')

r = requests.get("http://www.google.com", proxies=proxyDict, auth=auth)

答案 1 :(得分:-1)

状态代码可能提供线索:

407 Proxy Authentication Required
503 Service Unavailable

这些表明您的代理没有针对https运行,并且您正在使用的代理的用户名/密码组合错误。请注意,本地计算机不太可能需要与ec2实例相同的代理。