Python学习笔记(九) -- Python HttpClient使用requests库发送http消息
2017-08-30 16:52
597 查看
# -*- coding: utf-8 -*- """ Python Httpclient for Sending http requests """ import os import json import requests class HttpClient(object): def __init__(self, host='localhost', port=80, ssl=False, verify_ssl=False, timeout=5, ): """Construct a new HttpClient.""" self._host = host self._port = port self._timeout = timeout self._verify_ssl = verify_ssl self._scheme = "http" if ssl is True: self._scheme = "https" self._baseurl = "{0}://{1}:{2}".format( self._scheme, self._host, self._port) self._headers = { 'Content-type': 'application/json', } def request(self, url, method='GET', params=None, data=None, headers=None): url = "{0}{1}".format(self._baseurl, url) if headers is None: headers = self._headers if params is None: params = {} if isinstance(data, (dict, list)): data = json.dumps(data) for i in range(0, 3): try: response = requests.request( method=method, url=url, params=params, data=data, headers=headers, verify=self._verify_ssl, timeout=self._timeout ) break except requests.exceptions.ConnectionError as e: if i < 2: continue else: raise e return response if __name__ == '__main__': client = HttpClient('www.baidu.com', 80) body = dict( ) resp = client.request("/", method="GET", data=body, headers={"Content-Type":"application/json"}) print resp.status_code print resp.content
相关文章推荐
- Android使用Apache HttpClient发送GET、POST请求
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- C#使用UdpClient发送广播消息介绍
- Android之网络----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 使用搜狐Sendcloud的Webapi发送邮件:Jodd和Apache Httpclient
- Android中使用HttpURLConnection和HttpClient发送Http请求
- 使用HttpWebRequest发送自定义POST请求(以http方式推送消息)
- 使用搜狐Sendcloud的Webapi发送邮件:Jodd和Apache Httpclient
- 使用Python的Zato发送AMQP消息的教程
- Python中使用socket发送HTTP请求数据接收不完整问题解决方法
- HttpClient使用SESSIONID模拟用户发送请求
- 使用HTTP发送消息(消息队列技术)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- python模拟浏览器发送http消息(更新:关于cookie的管理)
- android使用apache httpclient发送post请求
- Python学习笔记(六) -- Python使用SMTP发送邮件
- 使用HTTP发送消息(消息队列技术)
- 使用搜狐Sendcloud的Webapi发送邮件:Jodd和Apache Httpclient
- Android使用Apache HttpClient发送GET、POST请求
- Android之网络----使用HttpClient发送HTTP请求(通过get方法获取数据)