1. 程式人生 > >《用python做HTTP介面測試》第二章學習筆記

《用python做HTTP介面測試》第二章學習筆記

第二章

小節1:

編寫一個Python程式,showjson.py,執行程式,提示“請輸入您的姓名:”,回車後,提示,”請輸入您的電話號碼:”,回車後,用JSON格式打印出你輸入的通訊資訊如下

import json
name = input("請輸入你的名字")
phone = input("請輸入你的電話號碼")
data = json.dumps({"name": name,
                   "phone": phone}, ensure_ascii=False, indent=4)
print(data)

小節2 略

小節3:

編寫一個Python程式,getip.py,執行程式,打印出“您的IP地址為:[本機的聯網IP地址]”

import requests

r = requests.get("http://httpbin.org/ip")
ip = r.json()['origin']
print("你的IP地址為:{}".format(ip))

小節4 略過

小節5:

編寫一個Python程式,getipinfo.py,執行程式,打印出“請輸入你要查詢的IP地址:[本機的聯網IP地址]”,輸入IP地址,並回車後,返回IP地址所在的國家(country)、地區(area)、省份(region)和城市(city)

import requests
payload = {'ip': '124.128.22.31'}

r = requests.get("http://ip.taobao.com/service/getIpInfo.php", params=payload)
response = r.json()
country = response['data'
]['country'] city = response['data']['city'] ip = response['data']['isp'] print("IP所在國家是: {}".format(country), "\n" "IP所在城市是: {}".format(city), "\n" )

小節6:

編寫一個Python程式,sendpost.py,執行程式,打印出“請輸入你的姓名:”,輸入姓名,並回車後,打印出“請輸入你郵箱:”,輸入郵箱,並回車後,向網址http://httpbin.org/post傳送如下定義的資料,
data={“name”:[輸入的姓名],”email”:[輸入的郵箱]}
並將返回的狀態碼和json美化資料打印出來。

import requests
import json

name = input('請輸入你的名字')
phone = input('你的電話')
url = 'http://httpbin.org/post'
data = {'name': name, 'phone': phone}
r = requests.post(url, data=data)
print(json.dumps(r.json(), ensure_ascii=False, indent=4))

小節7:

編寫一個Python程式,redirect.py,執行程式,打印出“請輸入重定向跳轉的次數(1-10之間的證書):”,輸入數字回車後,程式打印出通過requests.get方法向http://httpbin.org/redirect/[輸入的數字]傳送GET請求後得到狀態碼,應該為200,並且獲取這個請求中每一次跳轉的Location並分別打印出來。
Response物件的history屬性是一個包含了各次跳轉的Response物件的list型別資料

import requests

jump = input("請輸入重定向調轉的次數(1-10之間的整數):")
result = requests.get("http://httpbin.org/redirect/"+jump)
count = 1
for response in result.history:
    print("第{0}跳:Location={1}".format(count, response.headers["Location"]))
    count += 1

小節8 略過

小節9:

題目太長,略過

# -*-coding:utf-8-*-
# 原作者程式碼
import requests
import json
url = "http://httpbin.org/cookies"

commanddesp='''請輸入cookies指令: 
add key=value ,用於增加cookies
del key       ,用於刪除cookies
show          ,用於顯示當前的cookies
quit          , 退出
'''
def printresult(result):
    print(json.dumps(result.json(),indent=4))

def addcookie(strcookie, session):
    print(url+"/set?"+strcookie)
    printresult(session.get(url+"/set?"+strcookie))

def deletecookie(strcookie, session):
    printresult(session.get(url+"/delete?"+strcookie))

def showcookies(session):
    printresult(session.get(url))

session=requests.session()
command=input(commanddesp)
while(command):
    if(command.split()[0]=='add'):
        addcookie(command.split()[1],session)
    elif (command.split()[0]=='del'):
        deletecookie(command.split()[1],session)
    elif(command=="show"):
        showcookies(session)
    elif(command=="quit"):
        break
    else:
        print(commanddesp)
    command=input()