小编Fab*_* E.的帖子

Python使用https的代理请求API以获得407代理身份验证

我一直在努力与我的公司代理一起提出https请求。

import requests
from requests.auth import HTTPProxyAuth

proxy_string = 'http://user:password@url_proxt:port_proxy'

s = requests.Session()
s.proxies = {"http": proxy_string , "https": proxy_string}
s.auth = HTTPProxyAuth(user,password)

r = s.get('http://www.google.com') # OK
print(r.text)
r = s.get('https://www.google.com',proxies={"http": proxy_string , "https": proxy_string}) #OK
print(r.text)
r = s.get('https://www.google.com') # KO
print(r.text)
Run Code Online (Sandbox Code Playgroud)

当KO时,我有以下例外情况:

HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',)))
Run Code Online (Sandbox Code Playgroud)

我在网上看了一下,但没有发现有人遇到HTTPS的特定问题。

感谢您的时间

python proxy python-requests

6
推荐指数
1
解决办法
2万
查看次数

Java 异常设计:必须被捕获或声明被抛出 => 代码影响太大

免责声明:我来自 C# 世界,所以这个问题可能会因我以前的经验而产生偏见

我有一个初始化日志记录的方法。如果失败,则应用程序的其余部分不应运行,因为对 logger 的任何调用都将抛出 NullPointerException。

今天,我的代码正在捕获异常并通过 System.err 打印错误日志。对我来说,这是一个错误,它应该让异常传播直到它杀死应用程序。

所以我开始删除 try catch 并且我突然收到编译器的抱怨说我应该在调用此方法的整个堆栈上声明我的异常。

我理解它背后的逻辑,并且过去认为它很实用:你知道这种方法是如何失败的。

但是,就责任分离而言,这对我来说听起来并不正确。我不希望上层意识到这种潜在的 IOException 失败,这是一种非常特殊的行为,例如 main 方法不应该知道。而且,如果我们推动这个逻辑,这意味着:

  1. 最高层最终将不得不声明整个异常范围(从 IO 到网络到自定义异常......)
  2. 任何新异常的添加都可能影响大量文件和代码

我是否遗漏了什么,或者这是有意的异常设计?

java exception

0
推荐指数
1
解决办法
67
查看次数

标签 统计

exception ×1

java ×1

proxy ×1

python ×1

python-requests ×1