인터페이스 테스트 파이썬 모듈을 사용하여 -Requests

요청 모듈을 사용하는

중국어 문서 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)

 

 

출력은 다음과 같습니다

 

추천

출처www.cnblogs.com/wanglle/p/11581677.html