都是几年前用过的,现在翻出来记录一下。

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常用方法的更多相关文章

  1. httplib urllib urllib2 pycurl 比较

    最近网上面试看到了有关这方面的问题,由于近两个月这些库或多或少都用过,现在根据自己的经验和网上介绍来总结一下. httplib 实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更 ...

  2. Urllib2 总结

    Urllib2 总结 介绍 Urllib2是用于获取URLs(统一资源定位符)的一个Python模块.它以urlopen函数的形式提供了非常简单的接口.能够使用各种不同的协议来获取网址.它还提供一个稍 ...

  3. Python2中的urllib、urllib2和 Python3中的urllib、requests

    目录 Python2.x中 urllib和urllib2 常用方法和类 Python3.x中 urllib requests Python2.x中 urllib和urllib2 urllib 和 ur ...

  4. Linux内核补丁批量自动下载工具

    Linux kernel官网cgit工具不支持按变更代码进行补丁搜索,想到个办法就是把补丁都抓下来,这样可以在本地搜索.花了2个小时写了个小工具,话不多说,直接看效果: E:\docs\TOOLS\p ...

  5. ZTE and TP-Link RomPager - DoS Exploit

    #!/usr/bin/env python # -*- coding: utf-8 -*- # Exploit Title: ZTE and TP-Link RomPager DoS Exploit ...

  6. 用 python 实现一个多线程网页下载器

    今天上来分享一下昨天实现的一个多线程网页下载器. 这是一个有着真实需求的实现,我的用途是拿它来通过 HTTP 方式向服务器提交游戏数据.把它放上来也是想大家帮忙挑刺,找找 bug,让它工作得更好. k ...

  7. Python爬虫:一些常用的爬虫技巧总结

    爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情. 1.基本抓取网页 get方法 import urllib2 url = "http://www.baidu.com&qu ...

  8. 常用的 Python 爬虫技巧总结

    用python也差不多一年多了,python应用最多的场景还是web快速开发.爬虫.自动化运维:写过简单网站.写过自动发帖脚本.写过收发邮件脚本.写过简单验证码识别脚本. 爬虫在开发过程中也有很多复用 ...

  9. Python高频技巧总结[基础篇]

    0. 概要说明 python应用最多的场景还是web快速开发.爬虫.自动化运维:简单网站.自动Fuzz脚本.收发邮件脚本.简单验证码识别脚本. 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也 ...

随机推荐

  1. 对于EMC DAE、DPE、SPE、SPS的解释

    对于EMC DAE.DPE.SPE.SPS的解释: DAE: Disk Array Enclosure 单一的磁盘扩展单元 CX200/CX300/CX400/CX500CX600/CX700 DPE ...

  2. 关于vue页面多了之后,webpack热更新速度慢的解决办法

    vue项目大了之后,每次热更新都要10多秒的时间, 网上找了一大堆发现一个有用的办法 "env": { "development":{ "plugin ...

  3. springboot后台运行

    nohup java -jar shareniu.jar >out.txt &

  4. 5. Scala函数式编程的基础

    5.1 函数式编程内容及介绍顺序说明 5.1.1 函数式编程内容 -函数式编程基础 函数定义/声明 函数运行机制 递归(难点,[最短路径,邮差问题,迷宫问题,回溯]) 过程 惰性函数和异常 -函数式编 ...

  5. Linux Shell 用法

    目录 Shell test 命令 数值测试 字符串测试 文件测试 函数返回值 Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测 ...

  6. linux基础命令--groupdel 删除群组

    描述 groupdel命令用于删除用户组. groupdel命令会去修改系统下的/etc/group和/group/gshadow文件,删除有关用户组的所有项目(一般来说使用groupadd或user ...

  7. .net拼接json字符串

    { while (reader.Read()) { if (reader.HasRows) { JSONstring += "{"; JSONstring += "\&q ...

  8. 读书笔记一【哈希——MD5】

    计算机中,将某种数据转换成指定范围内的数字数字或字母叫做哈希(散列.hashing) 哈希后的值无法像加密解密那样恢复为原文值,通常用于文件校验或数字签名等 好的散列算法应具有: 充分利用所有数据位 ...

  9. PHPExcel 读取 xls

    <?php $xlsPath = './test.xls'; //指定要读取的exls路径 //$type = 'Excel2007'; //设置要解析的Excel类型 Excel5(2003或 ...

  10. iOS 控制台po不出值

    本人这几天开发项目时在控制台用po命令打印时,发现总是打印不出来,这里将我的解决方案推荐给大家 方法一:(本人就是用该方法解决了问题的) 在控制台选择All Output 方法二: 按图中指示选择de ...