モジュールを使用するための要求
中国のドキュメントAPI:http://2.python-requests.org/en/master/
1、GET、POSTリクエストを送信します
インポート要求 REPONSE = requests.get(" http://www.baidu.com " ) REPONSE = requests.post(" http://www.baidu.com ")
図2に示すように、応答特性
-
ビューの応答内容
-
response.textプロパティ
-
respone.content.decode(「UTF8」)属性バイトフォーマットのデコードデコードが必要です
-
-
ビューのレスポンスコードresponse.status_codeプロパティ
-
ビューレスポンスヘッダrespone.headersプロパティ
-
クッキー属性情報respone.cookiesをチェック
-
ビューリクエストメソッドrespone.requestプロパティ
- どのように再充電するためのインターフェイスを再充電する前にログインするログインインターフェースを呼び出す必要性を解決するには?
方法1:セッションオブジェクト、クッキー情報が自動的に保存された最後の要求を作成することによって、認証、許可の問題を解決します。
インポート要求 から requests.sessionsは、インポートセッション #は、セッションオブジェクト(セッション)を作成 #のアクションを自動的クッキー情報の最後の要求セーブ セッションを= セッション() #の登録インターフェース register_urlは= " HTTP:// IP:ポート/ futureloan / MVC / API /メンバー/登録」 register_data = { ' MobilePhone、':' 18814726727 '、' PWD ':' 123456 '、' 説明regname ':' 記録' } register_response= session.post(URL = register_url、データ= register_data) #の印刷(register_response.status_code) プリント(register_response.text) #登录接口 LOGIN_URL = " のhttp:// IP:ポート/ futureloan / MVC / API /メンバー/ログイン" login_data = { ' mobilephone ':' 18814726727 '、' PWD ':' 123456 ' } login_response = requests.get(URL = LOGIN_URL、データ= login_data) プリント(login_response.text) #充值接口 rech_url = " HTTP:// IPアドレス:ポート/ futureloan / MVC / API /部材/充電" rech_data = { ' mobilephone ':' 18814726727 '、' 量':' 200 ' } rech_response = requests.get(URL = rech_url、データ= rech_data) プリント(rech_response.text)
出力は次のようになります。
方法2:requsetsにクッキーを渡すことで、情報を要求するだけでなく、認証、許可の問題を解決します。
インポート要求 #登陆接口 LOGIN_URL = " のhttp:// IP:ポート/ futureloan / MVC / API /メンバー/ログイン" login_data = { ' mobilephone ':' 18814726727 '、' PWD ':' 123456 ' } login_response = requests.post (URL = LOGIN_URL、データ= login_data) プリント(login_response.text) プリント(login_response.cookies) クッキー = login_response.cookies #充值接口 rech_url = "HTTP:// IPアドレス:ポート/ futureloan / MVC / API /部材/充電」 rech_data = { ' mobilephone ':' 18814726727 '、' 量':' 200 ' } rech_response = requests.post(URL = rech_url、データ= rech_data 、クッキー= クッキー) プリント(rech_response.text)
出力は次のようになります。
-
heradersアプリケーションパラメータ
ヘッダ= { " のUser-Agent ":" Mozillaの/ 5.0(Windows NTの6.1; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 77.0.3865.35サファリ/ 537.36 " 、 #"トークン": ""、 " クッキー":" JSESSIONID = 5039A5FD7567C7C78B8180C50D340A5F "、 #请求的クッキー信息 " コンテンツタイプ":" アプリケーション/ x-www-form-urlencodedで" #のポスト请求格式 } rech_response = requests.post(URL = rech_url、データ= rech_data、ヘッダー=ヘッダ)
3、パッケージのリクエスト自身のクラス
目的:開始要求の種類を決定するために、実施形態に従った方法を要求します。
出力loggibをログに記録するには
HttpRequests直接要求情報が記録されていないクッキーを送信するために使用されるクラス、クッキーや情報がHttpRequestsCookiesクラスを記録することができます。
インポート要求の クラスHTTPRequests(): #は、直接情報クッキー記録せずに要求を送信 DEFの要求(セルフ、メソッド、URL、のparams =なし、データ=なし、ヘッダ=なし、クッキー=なし、JSON = :なし) メソッド = メソッドを.lower() #の要求を決定する方法ポストであるか、またはGET 場合 ==方法「ポスト」: #は、パラメータを渡すJSON POST要求を使用するか否かを判断する(インタフェースパラメータは、JSONのパラメータ渡しを適用するために使用されている) 場合JSON: #1 ロガー.info( "要求を送信する、要求アドレス:{}、要求パラメータ:{}"形式(URL、JSON) リターン requests.post(URL = URL、JSON = JSON、ヘッダー=ヘッダ、=クッキークッキー) 他: #Logger.info( "リクエストの送信、要求アドレス:{}、リクエストのパラメータ:{}"形式(URL、データ)) 戻り requests.post(URL = URL、データ=データ、ヘッダ=ヘッダ、クッキー= クッキー) ELIFの方法== " GET " : #1 logger.infoを( "要求を送信する、要求アドレス:{}、要求パラメータ:{}"形式(URL、paramsは)) 戻り requests.get(URL = URL、paramsはparamsは=、=ヘッダのヘッダ、クッキー= クッキー) クラス:HttpRequestsCookies() #の次の使用に送信要求情報及び記録クッキー、 DEF __init__ (自己): #は、セッションオブジェクトの作成 self.session = requests.sessions.Sessionを() DEF要求(セルフ、メソッド、URL、のparams =なし、データ=なし、ヘッダ=なし、クッキー=なし、JSON = なし): メソッド = method.lower() #の要求を決定する方法であるポストまたはGET のIF方法== 「ポスト」: #は、(パラメータがJSONのパラメータ渡しを使用するインターフェイスに適用される)引数を渡すJSON POST要求を使用するかどうかを判断する 場合:JSON #1 logger.info(「送信要求、要求アドレス:{}、要求パラメータ: } { "フォーマット(URL、データ))。 戻る self.session.postを(URL = URL、JSON = JSON、ヘッダー=ヘッダ、=クッキークッキー) 他: #1 logger.info("、要求アドレスを要求を送信します:{ }リクエストパラメータ:. {}「形式(URL、データ)) リターンself.session.post(URL = URL、データ=データ、ヘッダ=ヘッダ、=クッキークッキー) ELIFの方法== " GET " : #1 logger.info(「送信要求、要求アドレス:{}、要求パラメータ:{ 。}「形式(URL、paramsは)) 戻り self.session.get(URL = URL、paramsは= paramsは、ヘッダー=ヘッダ、=クッキークッキー) #切断セッション接続 DEF 閉じる(自己): self.session.close( ) IF __name__ == " __main__ " : R = HttpRequestsCookies() #ログインインターフェース LOGIN_URL = "http:// IP:ポート/ futureloan / MVC / API /メンバー/ログイン」 login_data = { ' mobilephone ':' 18814726727 '、' PWD ':' 123456 ' } 応答 = r.request(' ポスト'は、url = LOGIN_URL 、データ= login_data) プリント(response.text) #充值接口 rech_url = " HTTP:// IPアドレス:ポート/ futureloan / MVC / API /部材/充電" rech_data = { ' mobilephone ':"18814726727 ' ' 量':' 200 ' } 応答 = r.request(' 後'、URL = rech_url、データ= rech_data) プリント(response.text)
出力は次のようになります。