연구/Network
Python request 라이브러리 간단 사용방법
moyoung
2022. 9. 30. 08:00
지금 내가 작성하고 있는 코드는 Radius 패킷을 받아 EAP payload를 추출하고 그걸 HTTP 서버에 전송한다.
그 후에 서버가 보내는 응답을 받아 다시 Radius 패킷형태로 조물조물 해서 되돌려보낸다.
여기서 지금 막힌 곳은 request 부분이다.
// 보내고자 하는 url, data, header 를 정의한다.
url = "http://localhost:5000/eap-session" // Example
data = {'eapPayload': eap_message}
headers = {'Content-type': 'application/json', 'Accept': 'application/3gppHal+json'}
// request를 요청한다. 여기서 request뒤에 붙은 s를 잊지 말자
r = requests.post(url, data=json.dumps(data), headers=headers)
// 요청이 성공하면 응답상태, 400, 500, 200과 같은 코드와 응답 데이터가 전송되어 온다
print(r.json) // 응답상태 출력
# <bound method Response.json of <Response [200]>> 와 같은 응답 상태를 받는다.
print(r.text) // 응답데이터 출력. 내 경우 응답 데이터는 아래와 같다.
# {"eapPayload":"AVUADDIMAAAMAUAA","_links":{"eap-session":{"href":"http://.....중략....", authResult":"AUTHENTICATION_ONGOING"}
eapPayload = r.json()["eapPayload"] // 특정 feature만 뜯어서 저장할 경우
authResult = r.json()["authResult"]
이런식으로 request를 보내고 response 를 받으면 저장하고 내용을 확인 할 수 있다.
응답데이터의 속성은 아래와 같다.
속성
|
설명
|
status_code
|
응답 상태
|
headers
|
headers 정보
|
cookies
|
cookies 정보
|
encoding
|
데이터 인코딩을 확인할 수 있습니다.
|
text
|
str 타입 데이터
|
content
|
bytes 타입 데이터
|
.json()
|
dict 타입 데이터
|