zoukankan      html  css  js  c++  java
  • Python3下POST请求HTTPS链接

    Python 3.5.2 + Windows 7环境下

    第一种:http.client方式

    def http_client_post():
        conn = http.client.HTTPSConnection("www.xxx.com")
        params = urllib.parse.urlencode(
                {'id': 'id',
                 'token':'token',
                 }
            )
        conn.request("POST", "/api/get-product", params, headers={"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"})
        resp=conn.getresponse()
        print(resp.read().decode("UTF-8"))
        conn.close()

    第二种:urllib.request方式,urllib是基于http包的

    def urllib_post():
        opener = urllib.request.build_opener()
        params = urllib.parse.urlencode(
                {'id': 'id',
                 'token': 'token',
                 }
        )
        with opener.open('https://www.xxx.com/api/get-product', data=bytes(params, 'utf-8')) as resp:
            print(resp.read().decode('utf-8'))

     经测试第二种方式在windows 2008下尽然会出HTTP400错,WIN7下是OK的,看到Python的底层库还不太行啊


    第三种:用第三方requests库,推荐用这种方式

        你会看到requests库在pypi库中下载量排名很高http://pypi-ranking.info/alltime,对于英文阅读不是很好的朋友,官方还有中文版文档,看一下这吊炸天的代码:

    def requests_post():
        params = {'id': 'id', 'token': 'token'}
        r = requests.post("https://www.xxx.com/api/get-product", data=params)
        print(r.text)

    原文:https://blog.csdn.net/iteye_12715/article/details/82678017

  • 相关阅读:
    【NOIP】提高组2015 运输计划
    【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛
    【51nod】1766 树上的最远点对
    【BZOJ】2054: 疯狂的馒头
    【SRM20】数学场
    【Luogu】P3930 SAC E#1
    【Luogu】P3927 SAC E#1
    【Luogu】 P3928 SAC E#1
    【Codeforces】868C. Qualification Rounds
    【CodeForces】866D. Buy Low Sell High
  • 原文地址:https://www.cnblogs.com/anovana/p/10608520.html
Copyright © 2011-2022 走看看