요청 모듈을 사용하는
중국어 문서 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 = " // IP : 포트 / futureloan / MVC / HTTP를 API / 회원 / 회원 가입 " register_data = { ' 모바일 폰, ' : ' 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 = { ' 모바일 폰 ' : ' 18814726727 ' , ' PWD ' : ' 123456 ' } login_response가 = requests.get (URL = LOGIN_URL, 데이터 = login_data) 인쇄 (login_response.text) # 充值接口 rech_url = " HTTP : // IP : 포트 / futureloan / MVC / API / 회원 / 충전 " rech_data = { ' 모바일 폰 ' : ' 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 = { ' 핸드폰 ' : ' 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 = { ' 모바일 폰 ' : ' 18814726727 ' , ' 양 ' : ' 200 ' } rech_response = requests.post (URL = rech_url, 데이터 = rech_data 쿠키 = 쿠키) 인쇄 (rech_response.text)
출력은 다음과 같습니다
-
heraders 응용 프로그램 매개 변수
헤더 = { " 사용자 에이전트 " : " 모질라 / 5.0 (윈도우 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를 기록하려면
쿠키와 정보를 HttpRequestsCookies 클래스를 기록 할 수 있으며, 직접 요청 정보를 전송하는 데 사용 HttpRequests 클래스는 쿠키를 기록되지 않습니다.
가져 오기 요청의 클래스 HTTPRequests은 () : #이 직접 정보 쿠키를 기록하지 않고 요청을 전송 DEF의 요청 (자체, 방법, URL의 PARAMS = 없음을, 데이터 = 없음, 헤더 = 없음, 쿠키 = 없음, JSON = 없음) : 방법 = 방법 .lower () #의 요구를 결정하는 방법은, 후 또는 GET 만약에 있어서 == " 포스트 " : # 1 (JSON 파라미터 전달을 적용하는데 사용되는 인터페이스 파라미터)를 매개 변수를 전달 JSON POST 요청을 사용할지 여부를 결정 하는 경우 JSON : #의 로거 .INFO는 ( "요청을 전송 요청 주소 : {}, 요청 매개 변수 :. {}"형식 (URL, JSON) 반환 requests.post (URL = URL, JSON = JSON, 헤더 = 헤더 = 쿠키 쿠키) 다른: # Logger.info를 ( "요청을 보내기 요청 주소 : {}, 요청 매개 변수 : {}". 형식 (URL, 데이터)) 반환 requests.post (URL = URL, 데이터 = 데이터, 헤더 = 헤더, 쿠키 = 쿠키) ELIF의 방법 == " GET " : #의 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 요청의 사용 여부 에 IF : JSON #의 logger.info ( "요청을 전송 요청 주소 {} 요청 파라미터 : } { ". 형식 (URL, 데이터)) 반환 (URL = URL, JSON = JSON, 헤더 = 헤더 = 쿠키 self.session.post을 쿠키) 다른 : #의 logger.info를 ("요청 주소를 요청을 전송 : { } 요청 매개 변수 :. {} "형식 (URL, 데이터)) 반환self.session.post는 (URL이 = URL은 데이터 = 데이터가 헤더 = 헤더, 쿠키 = 쿠키) ELIF의 메소드 == " GET " : #의 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 = { ' 핸드폰 ' : ' 18814726727 ' , ' PWD ' : ' 123456 ' } 응답 = r.request ( ' 포스트 ' , URL = LOGIN_URL 데이터 = login_data) 인쇄 (response.text) # 充值接口 rech_url = " HTTP : // IP : 포트 / futureloan / MVC / API / 회원 / 충전 " rech_data = { ' 모바일 폰 ' :'18,814,726,727 ' , ' 양 ' : ' 200 ' } 응답 = r.request ( ' 포스트 ' , URL = rech_url 데이터 = rech_data) 인쇄 (response.text)
출력은 다음과 같습니다