当前位置: 首页 > news >正文

外贸网站建设 东莞手机网站 设置

外贸网站建设 东莞,手机网站 设置,网站简介如何做的有创意,网站开发背景通过requests.session().request 封装request方法 考虑到请求HTTP/2.0 同时封装httpx 来处理HTTP/2.0的请求 封装requests # 遇到请求失败的情况时 重新请求,请求5次等待2s retry(stop_max_attempt_number5, retry_on_resultlambda re_data: re_data is None, wai…

通过requests.session().request 封装request方法
考虑到请求HTTP/2.0
同时封装httpx 来处理HTTP/2.0的请求

封装requests

# 遇到请求失败的情况时 重新请求,请求5次等待2s
@retry(stop_max_attempt_number=5, retry_on_result=lambda re_data: re_data is None, wait_fixed=2000)def requests_request(self, method, url, params=None, data=None, json=None, headers=None, files=None, verify=False,cert=None, timeout=None, proxies=None, proxy=None, **kwargs):# 对异常进行捕获try:"""封装request请求,将请求方法、请求地址,请求参数、请求头等信息入参。注 :verify: True/False,默认为True,认证SSL证书开关;cert: 本地SSL证书。如果不需要ssl认证,可将这两个入参去掉使用session管理器requests.session(): 维持会话,跨请求的时候保存参数   """# 处理代理proxies = Noneif proxy:proxies = {'http://': 'http://' + proxy,'https://': 'https://' + proxy,}#  使用requests.session().request 请求re_data = requests.session().request(method, url, params=params, data=data, json=json, headers=headers,files=files, cert=cert, timeout=timeout, verify=verify,proxies=proxies, **kwargs)# 异常处理 报错显示具体信息except Exception as e:re_data = None# 打印异常print("请求失败:{0}".format(e))logger.error("Error occurred: %s", str(e), exc_info=True)# 重新抛出异常,触发 retry 机制raise e# 返回响应结果return re_data

封装httpx

@retry(stop_max_attempt_number=5, retry_on_result=lambda re_data: re_data is None, wait_fixed=2000)def httpx_request(self, method, url, is_http2=False, content=None, data=None, files=None, json=None, params=None,headers=None, cookies=None, timeout=None, extensions=None, proxy=None, **kwargs):# 对异常进行捕获try:"""使用client  method.upper() 请求方法都转为大写"""# 处理代理proxies = Noneif proxy:proxies = {'http://': 'http://' + proxy,'https://': 'https://' + proxy,}re_data = httpx.Client(http2=is_http2, proxies=proxies).request(method.upper(), url, content=content,data=data, files=files, json=json,params=params, headers=headers,cookies=cookies, timeout=timeout,extensions=extensions, **kwargs)# 异常处理 报错显示具体信息except Exception as e:re_data = None# 打印异常print("请求失败:{0}".format(e))logger.error("Error occurred: %s", str(e), exc_info=True)# 重新抛出异常,触发 retry 机制raise e# 返回响应结果return re_data

将两个请求封装在一个方法里

@retry(stop_max_attempt_number=5, retry_on_result=lambda re_data: re_data is None, wait_fixed=2000)def request(self, method, url, is_http2=False, params=None, data=None, json=None, headers=None, files=None,verify=False, cert=None, timeout=None, proxies=None, content=None, cookies=None, extensions=None,**kwargs):try:if is_http2:re_data = self.httpx_request(method=method.upper(), url=url, is_http2=is_http2, content=content,data=data, files=files, json=json, params=params, headers=headers,cookies=cookies, timeout=timeout, extensions=extensions, **kwargs)else:re_data = self.requests_request(method=method, url=url, params=params, data=data, json=json,headers=headers, files=files, cert=cert, timeout=timeout, verify=verify,proxies=proxies, **kwargs)# 异常处理 报错显示具体信息except Exception as e:re_data = None# 打印异常print("请求失败:{0}".format(e))logger.error("Error occurred: %s", str(e), exc_info=True)# 重新抛出异常,触发 retry 机制raise e# 返回响应结果return re_data

通过is_http2来区分

测试代码如下

if __name__ == '__main__':# request_requests 使用requests请求request_data = request_main.requests_request("get", 'https://spa16.scrape.center/')if request_data:print(request_data.text)print(request_data.status_code)# httpx 请求HTTP/2.0# response = re.httpx_request('GET', 'https://spa16.scrape.center/', True)# httpx 一般请求# headers = {'User-Agent': 'my-app/0.0.1'}# response = re.httpx_request('get', 'https://www.httpbin.org/get',params={'name': 'germey'})# print(response.text)# print(response.status_code)print(datetime.datetime.now())
http://www.yayakq.cn/news/7685/

相关文章:

  • 园区网站建设网站可以换虚拟主机吗
  • 网络推广网站有哪些贵州三大交通建设企业
  • 放心网站推广优化咨询wordpress 搭建交易所
  • 网页制作怎么做多个网站北大青鸟培训
  • 免费建网站最新视频教程大学生兼职网站策划书
  • 设计网站的关键点怎么找平台推广
  • 做网站用什么服务器会比较好江苏商城网站建设服务
  • 网站平台开发要注意什么问题wordpress标签选项卡
  • 网站建设解析江苏建设人才网电子证书查询
  • 青岛建网站的公司有哪些家电设计网站
  • 公司网站建设推荐建站之星视频
  • 网站开发需要什么基础知识智慧企业解决方案
  • 如何成为百度广告代理商seo兼职58
  • 建设企业管理类网站食品品牌网站策划
  • 广东品牌网站建设968招投标相关政策
  • 做系统用什么网站好商贸有限公司怎么样注册
  • 做网站的哪里有网站支付界面怎么做
  • 网站设计制作费用手机如何创建个人网站
  • 小题狂做 官方网站wordpress主题下载
  • 外贸网站大全台州网站建设推广
  • 个人网页设计的方法百度优化是什么
  • 凡科网做网站好吗网站模板登录模块
  • 资源专业网站优化排名做网络推广选择哪个网站好
  • 杭州做网站小芒wordpress如何添加自定义链接
  • 中国建信网官网旺道seo软件技术
  • 如何建一个企业网站衣柜全屋定制排名
  • 天津免费做网站如何写一份食品的网站建设规划
  • 做logo的比赛网站做网站外包哪家好
  • 有什么网站建设类岗位网站信息资料库建设
  • 企业网站怎么优化手机兼职任务平台