httplib和urllib2常用方法
都是几年前用过的,现在翻出来记录一下。
import httplib
import urllib2
import socket ##--------------------------------------------------------用httplib进行GET请求
conn=httplib.HTTPConnection('172.22.31.40',8080)##如果要走代理,那这里自然要改为代理服务器的地址
conn.request("GET","/cloud/index.php")
result=conn.getresponse()
print result.read()
resultStatus=result.status
print resultStatus
conn.close() conn=httplib.HTTPConnection('www.cnblogs.com',80)
conn.request("GET","/idbeta/default.html")
result=conn.getresponse()
print result.read()
resultStatus=result.status
print resultStatus
conn.close() ##--------------------------------------------------------用httplib进行POST请求
conn=httplib.HTTPConnection('172.22.131.40',80)
##一般重点关注真实包的"Content-type",例如"application/x-www-form-urlencoded"等;而data则根据真实抓包情况来模拟,需要url编码的用urllib.urlencode
header1 = {"Content-type": "application/x-www-form-urlencoded", "User-Agent" : "test"}
data1 = '''{
"audit_control_list" : [],
"ws" : [
"base_setting",
],
"xp_fix" : []
} '''
url1='/api/getconf.json?mid=ebcd32d5f68e404db1ccc8ff2dacb360&ver=1.0'
conn.request('POST',url1,body=data1,headers=header1)
result=conn.getresponse()
content=result.read()
print content
conn.close() ##发送multipart/form-data请求的例子
conn=httplib.HTTPConnection('172.22.131.40',80)
header2={"Content-Type":"multipart/form-data; boundary=----------------------------2bb6caed7d98"}
data2 = '''------------------------------2bb6caed7d98
Content-Disposition: form-data; name="em"
md5s=92f44e405db16ac55d97e3bfe3b132fa+04c5d2b4da9a0f3fa8a45702d4256cee42d8c48d 452608 \WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe 1
dcca4b04af87e52ef9eaa2190e06cbac+12a602b86fc394b1c88348fb099685eabb876495 1174016 \PROGRAM FILES\windows sidebar\sidebar.exe 1
------------------------------2bb6caed7d98--
'''
url2='/cloudquery.php'
conn.request("POST",url2,body=data2,headers=header2)
result=conn.getresponse()
resultStatus=result.status
##获取请求的页面内容
content=result.read()
print content
print result.status,result.reason
##关闭连接
conn.close() ##--------------------------------------------------------用urllib2进行GET请求
##直接open就是GET
url="http://www.cnblogs.com/idbeta/default.html"
response =urllib2.urlopen(url)
print response.read()
##--------------------------------------------------------用urllib2进行POST请求
url="http://172.22.131.40/api/getconf.json?mid=ebcd32d5f68e404db1ccc8ff2dacb360&ver=1.0"
header1 = {"Content-type": "application/x-www-form-urlencoded", "User-Agent" : "test"}
data1 = '''{
"audit_control_list" : [],
"base_config" : [],
"data_linkage" : [],
"md" : [],
"nac_linkage" : [],
"neteye" : [],
"p2p_setting" : [],
"safe_control_list" : [],
"sd" : [ "sd_settings", "rp_settings" ],
"ui" : [],
"ws" : [
"base_setting",
"popwnd_setting",
"startup_assistant",
"safe_protect",
"leak_repair"
],
"xp_fix" : []
} '''
req = urllib2.Request(url, data1, header1) # 发送请求同时传data表单,这个是字典方式
response = urllib2.urlopen(req) #接受反馈的信息
the_page = response.read() #读取反馈的内容
print the_page ##--------------------------------------------------------urllib2设置超时时间
##方法一 全局设置
socket.setdefaulttimeout(1);秒
##或
urllib2.socket.setdefaulttimeout(1)
##方法二 urllib2.urlopen加入timeout参数
urllib2.urlopen(url,timeout=1)
##--------------------------------------------------------urllib2设置代理
proxy = urllib2.ProxyHandler({"http" : 'http://172.22.31.85:808'})
urllib2.install_opener(urllib2.build_opener(proxy))
url="http://www.cnblogs.com/idbeta/default.html"
response =urllib2.urlopen(url)
print response.read()
除了上面所说的,还有httplib2、pycurl、requests等等都是和http相关的,用法大同小异,大家去各自官网看介绍就可以了,可见python的第三方库实在有点太多了啊。
httplib和urllib2常用方法的更多相关文章
- httplib urllib urllib2 pycurl 比较
最近网上面试看到了有关这方面的问题,由于近两个月这些库或多或少都用过,现在根据自己的经验和网上介绍来总结一下. httplib 实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更 ...
- Urllib2 总结
Urllib2 总结 介绍 Urllib2是用于获取URLs(统一资源定位符)的一个Python模块.它以urlopen函数的形式提供了非常简单的接口.能够使用各种不同的协议来获取网址.它还提供一个稍 ...
- Python2中的urllib、urllib2和 Python3中的urllib、requests
目录 Python2.x中 urllib和urllib2 常用方法和类 Python3.x中 urllib requests Python2.x中 urllib和urllib2 urllib 和 ur ...
- Linux内核补丁批量自动下载工具
Linux kernel官网cgit工具不支持按变更代码进行补丁搜索,想到个办法就是把补丁都抓下来,这样可以在本地搜索.花了2个小时写了个小工具,话不多说,直接看效果: E:\docs\TOOLS\p ...
- ZTE and TP-Link RomPager - DoS Exploit
#!/usr/bin/env python # -*- coding: utf-8 -*- # Exploit Title: ZTE and TP-Link RomPager DoS Exploit ...
- 用 python 实现一个多线程网页下载器
今天上来分享一下昨天实现的一个多线程网页下载器. 这是一个有着真实需求的实现,我的用途是拿它来通过 HTTP 方式向服务器提交游戏数据.把它放上来也是想大家帮忙挑刺,找找 bug,让它工作得更好. k ...
- Python爬虫:一些常用的爬虫技巧总结
爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情. 1.基本抓取网页 get方法 import urllib2 url = "http://www.baidu.com&qu ...
- 常用的 Python 爬虫技巧总结
用python也差不多一年多了,python应用最多的场景还是web快速开发.爬虫.自动化运维:写过简单网站.写过自动发帖脚本.写过收发邮件脚本.写过简单验证码识别脚本. 爬虫在开发过程中也有很多复用 ...
- Python高频技巧总结[基础篇]
0. 概要说明 python应用最多的场景还是web快速开发.爬虫.自动化运维:简单网站.自动Fuzz脚本.收发邮件脚本.简单验证码识别脚本. 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也 ...
随机推荐
- 转载Alpine Linux常用命令
Alpine Linux常用命令 目录 一:Alpine Linux开启SSH远程登陆 1.简介: 2.配置 3.配置命令 4.重启服务 二:Alpine Linux源管理 1.简介 2.国内源简介: ...
- Java自学笔记
1.标识符:字母,数字,下划线,美元符组成,不可以已数字开头,并且严格区分大小写 2.变量 有三个元素描述变量,变量类型,变量名,变量值 如何命名变量:首字母为 字母:下划线:“$“符号,其余部分为 ...
- Server response error code:404, error:{"ret":-1, "msg":"invalid appkey"}
Server response error code:404, error:{"ret":-1, "msg":"invalid appkey" ...
- 使用yield生成器,用Python实现用户对用户输入信息的监听和过滤
# -*- coding:utf-8 -*-'''''''''生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续 x 值的生成[Generator],简单 ...
- 利用GCD 中的 dispatch_source_timer 给tableViewCell添加动态刷新的计时/倒计时功能
1.思路一(失败) 在设置好cell 里的内容之后在每个cell 返回时调用定时器事件,更新cell 内容,然后刷新整个表格. - (void)didadida:(UITableViewCell *) ...
- oracle DML语句 事务的定义与特点
1.insert into (插入数据) insert in to 表名(列表1,列表2) values(要插入的数据1,数据2); or insert into 表名 values(数据 ...
- Python的基本语法1
一.python的基本数据类型 (1)6种基本数据类型 1.数字类型 int 整数,2,0,-4等 float 浮点数,如1.2,-0.3等 bool 布尔类型,True,False complex ...
- 严重:one or more listeners failed. Full details will be found in the appropriate container log file
one or more listeners failed. Full details will be found in the appropriate container log file 这句话 ...
- 使用vue-cli3搭建一个项目
前面说过用vue-cli3快速开发原型的搭建,下面来说一下搭建一个完整的项目 首先我们可以输入命令(创建一个项目名为test的项目) vue create test 输完这个命令后,会让你选择配置项, ...
- [译]《Sphinx权威指南》 - Sphinx入门
本章中,我们会讨论到Sphinx基础的安装.配置和维护.不要被“基础”这形容词糊弄而跳过这个章节.对于“基础”,我不是指简单到显而易见的东西,而是指所有人都会用到的功能. 一般来说,Sphinx会使用 ...