因为微信公众号群发需要调用高级群发接口,其中涉及到python发起HTTP请求,现在将相关实现操作记录如下:

  首先,HTTP请求分为GET和POST,如下所示:

  首先是发起get 请求:

# -*- coding: utf-8 -*-
import httplib
import urllib
try: httpClient =httplib.HTTPConnection('127.0.0.1',5000,timeout=30)
httpClient.request('GET','/data/get/')
response=httpClient.getresponse()
print response.status
print response.reason
print response.read()
except Exception,e:
print e
finally:
if httpClient:
httpClient.close()

  发起Http请求的时候,首先需要建立httpClient对象,建立的时候需要指定服务器的ip地址,端口号,以及超时时间。

  接下来正式发起HTTP 请求,需要指明获取数据的相对地址以及调用的方法,在这里,我们的方法为GET.

  最后,通过getresponse()方法可以获取服务器返回的信息。

  response.status 属性对应连接的状态

  response.reason 属性对应连接返回状态造成的原因

  response.read() 对应服务器返回的信息

接下来是发送post请求:

#-*- coding:utf8 -*-
#coding=utf-8
#author : zhouyang
import httplib,urllib
httpClient =None
try:
params =urllib.urlencode({'name':'zhouyang','age':21})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
httpClient=httplib.HTTPConnection('127.0.0.1',5000,30)
httpClient.request("POST",'/test/',params,headers)
response =httpClient.getresponse()
print response.status
print response.reason
print response.read()
print response.getheaders()
except Exception ,e:
print e
finally:
if httpClient:
httpClient.close()

  发起POST请求的时候,基本的步骤是和GET类似的,只是需要设置请求头的内容,并且需要将需要传输的数据格式化之后再发送给服务器。数据格式化采用的是urlencode()方法,将dict转换为格式化之后的字符串。

  同时,在最后,我们输出了服务器回应的头内容,即:

  response.getheaders()

python 发起HTTP请求的更多相关文章

  1. python发起post请求获取json数据使用requests方法

    最普通的答案 我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的 . 可能很多人都已经猜到了答案是: 1.GET 使用URL或Cookie传参.而POS ...

  2. python urllib2 发起http请求post

    使用urllib2发起post请求 def GetCsspToken(): data = json.dumps({"userName":"wenbin", &q ...

  3. python 爬虫 urllib模块 发起post请求

    urllib模块发起的POST请求 案例:爬取百度翻译的翻译结果 1.通过浏览器捉包工具,找到POST请求的url 针对ajax页面请求的所对应url获取,需要用到浏览器的捉包工具.查看百度翻译针对某 ...

  4. Ajax_02之XHR发起异步请求

    1.Ajax: AJAX:Asynchronous Javascript And Xml,异步的JS和XML: 同步请求:地址栏输入URL.链接跳转.表单提交-- 异步请求:使用Ajax发起,底层使用 ...

  5. libcurl发起post请求时间延迟问题。except为空即可

    最近在做团购酒店APP分享到qzone功能,使用libcurl访问qzone的分享cgi接口,酒店分享信息以POST方式传输,在测试的时候发现分享接口平均有2s的延迟,这延迟也太大了吧,于是乎问了空间 ...

  6. 发起post请求

    string postUrl = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo"; //string req ...

  7. 关于java发起http请求

    我们到底能走多远系列(41) 扯淡: 好久没总结点东西了,技术上没什么总结,感觉做事空牢牢的.最近也比较疲惫. 分享些东西,造福全人类~ 主题: 1,java模拟发起一个http请求 使用HttpUR ...

  8. [Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式

    1.利用apache提供的commons-httpclient-3.0.jar包 代码如下: /** * 利用HttpClient发起POST请求,并接收返回的响应内容 * * @param url ...

  9. Python中http请求方法库汇总

    最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示: 一.python自带库----urllib2 python自带 ...

随机推荐

  1. hdu_3564_Another LIS(线段树+LIS)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3564 题意:给你N个数的位置.数i的位置为第i个数,比如 0 0 2,表示1插在第0个位置,此时数列为 ...

  2. angular实现select的ng-options4

    ng实现简单的select <div ng-controller="ngSelect"> <select ng-model="vm.selectVal& ...

  3. js中将 整数转成字符,,将unicode 编码后的字符还原出来的方法。

    一.将整数转成字符: String.fromCharCode(17496>>8,17496&0xFF,19504>>8,19504&0xFF,12848> ...

  4. Android-----获取屏幕分辨率DisplayMetrics简介 .

    引自:http://blog.csdn.net/zhangqijie001/article/details/5894872 Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人 ...

  5. 简单 实现CombineFileInputFormat

    import java.io.DataOutput; import java.io.IOException;   import org.apache.hadoop.conf.Configuration ...

  6. html5中的postMessage解决跨域问题

    解决跨域问题的方法有很多,如:图像ping(简单).jsonp(缺点是不能实现跨域post).CROS(CORS的本质让服务器通过新增响应头Access-Control-Allow-Origin,通过 ...

  7. Monkey and Banana(基础DP)

    Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  8. Gson通过借助TypeToken获取泛型参数的类型的方法

    最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...

  9. 初始化时查看combox的文本内容

    string sql = string.Format("select field_name from pt_temp_field where pt_name = '{0}' and temp ...

  10. 丢手帕问题as3版

    N个孩子围成一圈报数,报到M的退出,剩下的再从1继续报数,报到M的再退出,一直持续到只剩一个人,问剩下的是哪个? package { import flash.display.Sprite; publ ...