Python 노트(9)--Python HttpClient 는 requests 라 이브 러 리 를 사용 하여 http 메 시 지 를 보 냅 니 다.
2155 단어 Python
# -*- 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.