Python教程

python 网络请求

本文主要是介绍python 网络请求,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

python 网络请求相比Android 网络请求要简单

1,你可以定义一个自己的请求头,也可以不写。 如:

http_headers = {'Accept': 'application/json', 'Connection': 'keep-alive',
                'User-Agent': 'PCHM10,PCHM10,OPPO,Android 10,WIFI'}

由于,我们公司请求User-Agent必须是手机,否则就会重定向到其它域名,所有,我写死了我的手机型号

2,你设置请求参数

    apiHost = ""
    appType = ""
    good_app_type = ""
    platform = "android"

    apiKey = ""
    version = ""
    apiDevice = "1"
    channel = "default"
    # 请求打包参数
    apiPullMethod = "api/v1/app_package"
    # 打包成功进行上传方法
    apiFinishMethod = "api/v1/articles-add-comment"

这些参数,根据公司请求约定的来填写。

3、对请求参数md5加密,公司没这要求可以不看

        md5 = hashlib.md5()
        t = str(int(time.time()))
        # 请求参数
        queryArray = {'app_type': self.appType, 'good_app_type': self.good_app_type, 'deviceid': self.apiDevice,
                      'platform': self.platform, 'timestrap': t, 'channel': self.channel, 'version': self.version,
                      'secret': "package_meite_question_secrtet", 'id': jId}

        ls = sorted(queryArray)
        # 排序
        s = ''
        for key in ls:
            s += key + queryArray[key]
        # 加密串拼接apiKey
        md5.update((s + self.apiKey).encode('utf8'))
        # 获取加密串数据 ,字典添加sign
        queryArray['sign'] = md5.hexdigest()
        # 重装字符串
        queryString = urlencode(queryArray)

我们公司是对请求参数先排序,然后拼接apiKey ,组成加密串,进行加密

4、进行get请求

        # get请求
        result = requests.get(self.apiHost + self.apiPullMethod + '?' + queryString, headers=http_headers)
        # print(result.content)
        try:
            contentJson = json.loads(result.content.decode('utf8'))
            print("code=" + str(contentJson['code']))
        except Exception as e:
            print(e)
            return []

        if contentJson['code'] != 200:
            return []

        return contentJson['data']['data']

返回数据格式根据公司请求定义。 现在你可以进行数据操作了

5、post请求

与get请求类似

        data = {'articles_id': "1", 'content': 'hhhh'}
        print('finish接口上报数据')
        # post请求
        result = requests.post(self.apiHost + self.apiFinishMethod + '?' + queryString, data=data, headers=http_headers)
        print(result)
        try:
            contentJson = json.loads(result.content.decode('utf8'))
            print("code=" + str(contentJson['code']))
            print("data=" + str(contentJson['data']))
        except Exception as e:
            print(e)
            return []

        if contentJson['code'] != 200:
            return []

你需要定义data={} 传入post请求参数,最后拼接在post()方法里面

python下载地址:https://download.csdn.net/download/qq_28759359/20722066

这篇关于python 网络请求的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!