美文网首页Python基础系列
python之简单的get和post请求

python之简单的get和post请求

作者: 我爱学python | 来源:发表于2019-08-05 19:47 被阅读9次

    1.json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps()json.loads() , 要比其他序列化函数库如pickle的接口少得多。 下面演示如何将一个Python数据结构转换为JSON:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    import json
     
    data = {
        'name' : 'ACME',
        'shares' : 100,
        'price' : 542.23
    }
     
    json_str = json.dumps(data)
    

    下面演示如何将一个JSON编码的字符串转换回一个Python数据结构:

    data = json.loads(json_str)
    

    2.简单的get和post请求,使用import requests

    import requests
     
    response = requests.get('http://httpbin.org/get')
    print(response.text)
    
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    #通过在发送post请求时添加一个data参数,这个data参数可以通过字典构造成
    import requests
     
    data = {
        "name":"zhaofan",
        "age":23
    }
    response = requests.post("http://httpbin.org/post",data=data)
    print(response.text)
    

    3.GET方法,并且自定义header

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # -* - coding: UTF-8 -* - 
    import urllib2
     
    request = urllib2.Request("http://www.baidu.com/")
    request.add_header('content-TYPE', 'application/x-www-form-urlencoded')
    response = urllib2.urlopen(request)
    print response.getcode()
    print response.geturl()
    print response.read()
    

    POST方法,并且自定义header

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # -* - coding: UTF-8 -* - 
    import urllib2
    import urllib
     
    request = urllib2.Request("http://passport.cnblogs.com/login.aspx")
    request.add_header('content-TYPE', 'application/x-www-form-urlencoded')
    data={"tbUserName":"test_username", "tbPassword":"test_password"}
     
    response = urllib2.urlopen(request, urllib.urlencode(data))
    print response.getcode()
    print response.geturl()
    print response.read() 
    

    4.实际测试脚本编写

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # coding:utf-8
    import json
    import urllib2
    import requests
     
     
    class AddScores:
        def __init__(self):
            pass
     
        def getToken(self):  # 获取token值
            url1 = 'xxxxx'#url
            r1 = requests.get(url1)
            self.tokenObj = json.loads(r1.text)#解码JSON数据
     
            if self.tokenObj["result"] == "success":
                print self.tokenObj["token"]
            else:
                print "failed"
            return self.tokenObj["token"]
     
        def personMess(self):  # 获取个人信息
            url2 = 'xxx' + self.getToken()
            r2 = requests.post(url2)
            print r2.text
     
        def addSco(self,resId):  # 添加分数
            data = {
                "memberId": "xxx",
                "orgCode": "xxx",
                "resourceId": resId,#传参,传resourceId
                "configName": "wsp", "resourceType": "wsp"
            }
     
            print "添加分数的请求参数:"
            print json.dumps(data)#编码JSON
     
            headers = {'Content-Type': 'application/json'}
            url3 = 'xxx' + self.getToken()
            re3 = urllib2.Request(url=url3, headers=headers, data=json.dumps(data))
            response = urllib2.urlopen(re3)
            print response.read()
    

    5.读写TXT文件

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    #coding:utf-8
    import time
     
    from Demo2.token import AddScores
     
     
    class ResId:
        def getResId(self):
            file=open('xxxx')
            # a=file.read()
            # print a
            lId= file.readline()
            lId=lId.strip(',\n')
     
            while lId != '':#逐行读取数据
                print lId
                addScores = AddScores()
                addScores.getToken()
                addScores.personMess()
                addScores.addSco(lId)
     
                time.sleep(68)
     
                lId = file.readline()
                print "============================="
     
     
    ResId().getResId()
    

    相关文章

      网友评论

        本文标题:python之简单的get和post请求

        本文链接:https://www.haomeiwen.com/subject/oujvdctx.html