因为微信公众号群发需要调用高级群发接口,其中涉及到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. JavaScript基础教程

    功能介绍: (1)数据验证 弹出提示的对话框,产生判断的效果. (2)气泡提示窗口 右下角等等一类的窗口 (3)产生新窗口 (4)无边框窗口背景变灰,也是可以节约系统资源的

  2. 在web项目中使用cxf开发webservice,包含spring支持

    本文主要介绍了,如何使用cxf内置的例子,学会开发webserivce,在web项目中使用,且包含spring支持. webserivce的开发可以使用cxf或者axis,好像还有httpclient ...

  3. emacs redo

    c / c/ cg c/ cg c/ tramp: /sudo::/usr/

  4. java网络之tcp

    简单tcp传输 package pack; /* 演示tcp传输. 1,tcp分客户端和服务端. 2,客户端对应的对象是Socket. 服务端对应的对象是ServerSocket. 客户端, 通过查阅 ...

  5. XML 从基础到精通

    1.简介 XML(可扩展标记语言)语言是一种数据交换标准,用于存储数据:关键词是标记: XML具有以下优点: (1) 方便的穿过防火墙,在不同的操作系统之间通信,跨语言,跨平台.数据共享非常方便.(J ...

  6. angularJs关于指令的一些冷门属性

    我们使用ng的时候,经常会使用到指令,大家所熟知的属性我在这里就不介绍了,讲讲大家没怎么留意的属性 1.multiElement 这是指定指令作用区间的功能,最常用的就是ng-repeat-start ...

  7. 关于Eclipse无法生成class文件的问题

    今天调试东西的时候发现怎么都无法build 遂用Eclipse里的clean功能 打算重新编译一下结果所有的class文件全部消失了 重新打包发包也不行 经过查找后得到方法:把properties属性 ...

  8. 初始化Direct3D

    1.Direct3D概述 Direct3D是一套底层图形API,借助该API,我们能够利用硬件加速功能来绘制3D场景. 设备制造商将其产品支持的全部功能都实现到HAL中. 1.1 Direct3D提供 ...

  9. js优化与注意点

    1.使用尽可能少的全局变量.尽量用var来声明变量,避免隐式使用全局变量. 隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力. 通过var创建的全局变量(任 ...

  10. Is it possible to run native sql with entity framework?

    For .NET Framework version 4 and above: use ObjectContext.ExecuteStoreCommand() if your query return ...