http错误和异常处理,认证和代理设置

http错误:

import urllib.request
req = urllib.request.Request(‘http://www.python.org/fish.html‘)
try:
urllib.request.urlopen(req)
except urllib.error.HTTPError as e:
print(e.code)
print(e.read().decode("utf8"))

异常处理1:

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
req = Request("http://twitter.com/")
try:
response = urlopen(req)
except HTTPError as e:
print(‘The server couldn\‘t fulfill the request.‘)
print(‘Error code: ‘, e.code)
except URLError as e:
print(‘We failed to reach a server.‘)
print(‘Reason: ‘, e.reason)
else:
print("good!")
print(response.read().decode("utf8"))

异常处理2:

from urllib.request import Request, urlopen
from urllib.error import URLError
req = Request("http://twitter.com/")
try:
response = urlopen(req)
except URLError as e:
if hasattr(e, ‘reason‘):
print(‘We failed to reach a server.‘)
print(‘Reason: ‘, e.reason)
elif hasattr(e, ‘code‘):
print(‘The server couldn\‘t fulfill the request.‘)
print(‘Error code: ‘, e.code)
else:
print("good!")
print(response.read().decode("utf8"))

http认证:

import urllib.request

# create a password manager
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
# If we knew the realm, we could use it instead of None.
top_level_url = "https://cms.tetx.com/"
password_mgr.add_password(None, top_level_url, ‘yzhang‘, ‘cccddd‘)

handler = urllib.request.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib.request.build_opener(handler)

# use the opener to fetch a URL
a_url = "https://cms.tetx.com/"
x = opener.open(a_url)
print(x.read())

# Install the opener.
# Now all calls to urllib.request.urlopen use our opener.
urllib.request.install_opener(opener)

a = urllib.request.urlopen(a_url).read().decode(‘utf8‘)
print(a)

代理设置:

import urllib.request

proxy_support = urllib.request.ProxyHandler({‘sock5‘: ‘localhost:1080‘})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)

a = urllib.request.urlopen("http://g.cn").read().decode("utf8")
print(a)

Timeout的设置

上一节已经说过urlopen方法了,第三个参数就是timeout的设置,可以设置等待多久超时,为了解决一些网站实在响应过慢而造成的影响。

例如下面的代码,如果第二个参数data为空那么要特别指定是timeout是多少,写明形参,如果data已经传入,则不必声明。

import urllib.request

data=urllib.request.urlopen("url",timeout=10)

data=urllib.request.urlopen("url",data,10)

时间: 2024-08-07 06:16:58

http错误和异常处理,认证和代理设置的相关文章

[Android] 开源框架 xUtils HttpUtils 代理设置 (Temporary Redirect错误)

今天简单学习了一下xUtils的使用 https://github.com/wyouflf/xUtils 其中用到HttpUtils模块时,发现总是出现Temporary Redirect 错误. 查看源代码,发现如果是通过代理上网的话,需要在初始化HttpUtils时,传代理的String值. 在HttpUtils.java中: public HttpUtils(int connTimeout, String userAgent) { HttpParams params = new Basic

requests--超时设置,代理设置,身份认证

超时设置 你可以告诉 requests 在经过以 timeout 参数设定的秒数时间之后停止等待响应.基本上所有的接口都应该使用这一参数.如果不使用,你的程序可能会永远失去响应 import requests base_url = 'http://httpbin.org' params_data = {"user": "zou", "pwd": '31500'} r = requests.get(base_url + '/get', params

PHP的错误和异常处理

PHP的错误和异常处理 任何程序员在开发时都可能遇到过一些失误,或其他原因造成错误的发生.当然,用户如果不愿意或不遵循应用程序的约束,也会在使用时引起一些错误发生.PHP程序的错误发生一般归属于下列三个领域. Ø  语法错误 语法错误最常见,并且最容易修复.例如,遗漏了一个分号,就会显示错误信息.这类错误会阻止脚本执行.通常发生在程序开发时,可以通过错误报告进行修复,再重新运行. Ø  运行时错误 这种错误一般不会阻止PHP脚本的运行,但是会阻止脚本做希望它所做的任何事情.例如,在调用heade

CentOS7.2 安装Squid3.5及正、反向代理设置

Squid是比较知名的代理软件,它不仅可以跑在linux上还可以跑在windows以及Unix上,它的技术已经非常成熟.目前使用Squid的用户也是十分广泛的.Squid与Linux下其它的代理软件如Apache.Socks.TISFWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议.       Squid之所以用的很多,是因为它的缓存功能,Squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O. 从经济角度考虑,它是很多网站架构中不可或缺的角色.  

nginx访问控制、rewrite应用、代理设置

 nginx访问控制.rewrite应用.代理设置 一.访问控制 在这里依然还是以default2.conf虚拟主机为例,配置文件位置default2.conf 1.允许某个ip访问 ,需要在default2.conf配置配文件中添加,具体如下图: 规则如下: allow 127.0.0.1; allow 192.168.21.97; deny all; 只允许127.0.0.1和192.168.21.97来访问,其他的全部拒绝 退出保存 1)检查配置文件 2)重置配置文件 3)测试 允许ip测

Nginx的安装及反向代理设置

因为项目的缘故,接触到了Nginx的安装和反向代理设置,和大家分享下. 一.Nginx的下载.安装cd /homewget http://nginx.org/download/nginx-1.0.5.tar.gztar -zxvf nginx-1.0.5.tar.gzcd nginx-1.0.5./configuremakemake install 二.反向代理设置编辑Nginx的配置文件vi /usr/local/nginx/conf/nginx.conf,替换server { }的{ }中的

Git代理设置与访问Github

由于目前工作的网络环境有着很严格的限制,可以说最近在通过代理访问Github上颇费了一些周折,也积累了一些相关的经验,觉得有必要备忘一下.本着"不重新发明轮子"的宗旨,本文不会对Github代理设置的每一个细节进行赘述,文中会给出现成的参考文章,这里要做的是针对一些重要的问题进行解释和补充,相信一定能给遇到同样问题朋友以帮助.本文原文出处:http://blog.csdn.net/bluishglc/article/details/37807501 严禁任何形式的转载,否则将委托CSD

pfSense 2.33 Squid透明代理设置

Squid是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 Squid 代替其进行下载,然后 Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户. 按照代理类型的不同,可以将 Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理. 普通代理:需要客户机在

再谈PHP错误与异常处理

博客好久没有更新了,实在惭愧,最近在忙人生大事,哈哈!这段时间没有看什么新的东西,结合项目中遇到的PHP异常处理问题,我又重新梳理了之前模糊的概念,希望对大家理解PHP异常处理有所帮助. 请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程序,内容如下,然后命令行执行:php test.php 1 <?php 2 $num = 0; 3 try { 4