zoukankan      html  css  js  c++  java
  • python(十四)网络编程

    1.通过python代码实现get请求和post请求

    需要导入模块requires

    2.get请求:1.get没有参数的请求

                     2.get有参数的请求

                   3. get没有请求参数但是有header

    注意:data的书写方式是字典形式的

    get没有参数的请求:r=requires.get(url)

    返回的三种形式:                     r.json()   #返回的是字典

                                                      r.text  # 返回的是字符串  

                                                      r.content() #返回的是bytes类型

    get有参数的请求  r =requires.get(url,data)

    get无参数有headers   r=requires.get(url,headers=header)

    返回的三种形式:                     r.json()   #返回的是字典

                                                      r.text  # 返回的是字符串  

                                                      r.content() #返回的是bytes类型

    import datetime
    
    import requests
    url = 'http://api.nnzhp.cn/api/user/stu_info'
    req = requests.get(url,params={'stu_name':'abc'})
    print(req.json()) #返回的json直接帮你转成了字典
    print(req.text) #返回的就是字符串,如果返回的不是json的话,就要用它了
    print(req.status_code) #返回的http状态码
    print(req.content)  #返回的bytes类型的,下载文件的时候用它

    3.post请求:只有body,header,cookie

    注意:data的书写形式是字典类型

    只有body的情况:r=requires.post(url,data)

    有cookie和body的情况:

    header={‘cookie’:“XXXXXX”}

    r=requires.post(url,data,headers=header)

    有header,cookie,和body的情况:

    header={“cookie”:“XXXX”,‘XX’:“XXX”}

    返回的三种形式:                     r.json()   #返回的是字典

                                                      r.text  # 返回的是字符串  

                                                      r.content() #返回的是bytes类型

    #简单的post请求只有请求参数
    url="http://api.nnzhp.cn/api/user/login"
    req = requests.post(url,data={"username":"niuhanyang","passwd":"aA123456"})
    print(req.json())
    #post有header、cookies
    url="https://qun.qq.com/cgi-bin/qun_mgr/get_group_list"
    data ={"bkn": 208992859}
    #cookies作为参数
    # d = {'pgv_pvi': '6636933120', 'RK': 'gRZhhBpNbS', 'ptcz': '14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8', 'pgv_pvid': '4990195883', 'ts_uid': '5190463916', 'uin': 'o0511402865', 'pgv_si': 's7505852416', 'skey': '@2ttDS8Ljw', 'p_uin': 'o0511402865', 'pt4_token': 'AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_', 'p_skey': '9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_', 'traceid': '14035c8a79'} # req = requests.post(url,data,cookies=d)
    #把cookies作为headers的参数之一 header = {'cookie':"pgv_pvi=6636933120; RK=gRZhhBpNbS; ptcz=14bab564718e3e1048a09cc0e18a23f7c51f20d5b93da610cc1427f51f63a2f8; pgv_pvid=4990195883; ts_uid=5190463916; uin=o0511402865; pgv_si=s7505852416; skey=@2ttDS8Ljw; p_uin=o0511402865; pt4_token=AgqIsYBhO1b82zx1N4SxoGpCxGV0d38ss7jCI1nYfIg_; p_skey=9nlMjw4Uy44*Hu5iL3DOFonmAtZtExiniLykrsIRKmM_; traceid=14035c8a79"} req = requests.post(url,data,headers=header) print(req.json())

     上传的是json形式的参数:

    import datetime
    
    import requests
    url="https://oapi.dingtalk.com/robot/send?access_token=44402c9408df8cf3f429c02a20399fc34604f98cf572fcaeaa3f9592426176a7"
    today = datetime.datetime.now()
    d = {"msgtype": "text","text": {"content": "现在是%s,大家不要忘记写作业哦!暗号:besttest"%today} }
    req = requests.post(url,json=d)
    print(req.json())
    print(req.cookies) #获取cookies

    4.上传文件:

    r=requires.post(url,files={‘file’:open(‘文件名’,‘rb’)})

    用session()方法请求:作用是:当我们登录一个系统后,session会自动帮我们保存cookie,然后在用session()支付接口或查看订单接口时就不用再传cookies了

    r=requires.session()

    r.post(url,data=data)、r.get(url,params=data)

    import datetime
    
    import requests
    
    url = "http://api.nnzhp.cn/api/file/file_upload"
    f = open('sxy.mp4','rb')
    data = {'file':f}
    r = requests.post(url,files=data)
    print(r.json())
    f.close()

     5.下载文件

    import datetime
    
    import requests
    
    url = "https://q4.qlogo.cn/g?b=qq&nk=516481&s=14"
    req = requests.get(url)
    
    f = open('wjl.jpg','wb')
    f.write(req.content)
    f.close()
  • 相关阅读:
    Linux文件编辑器 vi
    Sudo 和 Root 帐号
    Linux基本命令篇的习题解答
    Linux应用篇
    VMware中虚拟机网卡的四种模式
    Ubuntu游戏集合
    Linux与Window文件共享
    Linux知识点滴II
    [转载][翻译]jQuery Mobile教程创建一个订餐web应用(下)
    在WPF中创建带有刻度线的滑动条
  • 原文地址:https://www.cnblogs.com/dmjsd/p/11116922.html
Copyright © 2011-2022 走看看