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脚本.收发邮件脚本.简单验证码识别脚本. 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也 ...
随机推荐
- raycast 一小段距离碰撞到的poly
dtNavMeshQuery::raycast(dtPolyRef startRef, const float* startPos, const float* endPos, const dtQuer ...
- 使用 JProbe 调试 Linux 内核(转)
https://liam.page/2018/04/28/debug-in-Linux-kernel-jprobe/
- mysql千万级数据量查询出所有重复的记录
查询重复的字段需要创建索引,多个条件则创建组合索引,各个条件的索引都存在则不必须创建组合索引 有些情况直接使用GROUP BY HAVING则能直接解决:但是有些情况下查询缓慢,则需要使用下面其他的方 ...
- MFC全屏显示和多窗口动态显示的一些技巧和方法
一.全屏 1.全屏窗口从dialogex继承,因为要处理一些东西 2.全屏代码,这样设置后尺寸不会出bug,只设置为最大值的话容易出bug //get current system resolutio ...
- TypeScript初探
TypeScript初探 TypeScript什么? 官方给的定义:TypeScript是一种由微软开发的自由和开源的编程语言,它是JavaScript类型的超集,可以编译成纯JavaScript,本 ...
- vue项目打包之后js文件过大怎么办?
- Scala中 zip或者zipWithIndex的用法
问题:你要遍历一个有序集合,同时你又想访问一个循环计数器,但最重要的是你真的不需要手动创建这个计数器.解决方案: 使用zipWithIndex或者zip方法来自动地创建一个计数器,假设你有一个有 ...
- Shell脚本创建的文件夹末尾有两个问号怎么回事?
原因:Linux系统的换行符是"\r\n",Windows上的换行符是"\n",Windows上编写shell脚本上传Linux,Linux无法正确识别&quo ...
- 对int类型的数据,如何让获取长度
下面为大家写一个列子 int a = 124;<br> Integer a1 = a;//转换为包装类Integer<br> System.out.println(a1.t ...
- ArrayList 和 LinkList 的区别
ArrayList 的相关知识 public class ArrayList<E> extends AbstractList<E>implements List<E> ...