zoukankan      html  css  js  c++  java
  • 通过Python的urllib封装get,post请求

    1.导入模块

    import urllib.request

    2. 需要请求的url和接口参数

    url = " 接口请求的地址/URL
    
    data = "接口参数"

    3. 封装get请求

    data = urllib.parse.urlencode(data) 首先对data进行转码,转化成str类型
    new_url = url+"?"+data  URL拼接
    result
    = urllib.request.urlopen(new_url) response = result.read() 读取响应结果 print(response.decode("utf8")) 对响应结果解码

    4.封装post请求

    data = urllib.parse.urlencode(data) 首先对data进行转码,转化成str类型
    data = data.encode('utf-8')  post请求只支持byte类型,所以要进行再次编码

    new_url = urllib.request.Request(url,data) 对url和参数进行包装

    response = urllib.request.urlopen(new_url)
    response
    = result.read() 读取响应结果 print(response.decode("utf8")) 对响应结果解码

    5. urlopen提供的方法

    read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作

    info():返回HTTPMessage对象,表示远程服务器返回的头信息
    getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
    geturl():返回请求的url

    6.将get,post请求封装成类,提高代码复用性

    class Http:
    
        def __init__(self):
            pass
    
        def Get(self,url, data):
            """
            self.Get(url,data)
            :param url:
            :param data:
            :return:
            """
            data = urllib.parse.encode('utf8')
            new_url = url + "?" + data
            result = urllib.request.urlopen(new_url)
            response = result.read()
            return response.decode('utf8')
    
        def Post(self,url,data):
            """
            self.Post(url,data)
            :param url:
            :param data:
            :return:
            """
            data = urllib.parse.encode(data)
            data = data.encode('utf8')
            new_url = urllib.request.Request(url, data)
            result = urllib.request.urlopen(new_url)
            response = result.read()
            return response.decode('utf8')
  • 相关阅读:
    2020系统综合实践 第1次实践作业
    软工实践个人总结
    2019 SDN大作业
    HDU 4965 Fast Matrix Calculation (矩阵快速幂取模----矩阵相乘满足结合律)
    HDU 1565 (最大流+黑白染色化二分图求最小割)
    HDU 4289 Control (最大流+拆点)
    HDU 3605 Escape(最大流+缩点转换)
    HDOJ4886(hash+枚举)
    POJ 2446 Chessboard (二分匹配)
    POJ 1469 COURSES (二分匹配,邻接表)
  • 原文地址:https://www.cnblogs.com/shaojiehaoshuai/p/7156766.html
Copyright © 2011-2022 走看看