본문 바로가기
Development/Python

[Python] Flask API Test를 curl로 진행 시 timeout(28) 오류 & NoneType Error 해결

by 성딱이 2022. 3. 15.
반응형

 

상황 1 : Flask API를 테스트 하려는데, 당장 포스트맨을 활용하기가 어려운 상황이어서 curl로 shell창에서 request를 날려 테스트를 진행하고자 함

오류 1 : curl: (28) Failed to connect to 100.60.180.190 port 8890: Connection timed out

 

 

원인 1 : 잘못 된 주소에 Request를 날리고 있었다.(Server작업 & 외부IP주소로 Request)

(jh) gpuadmin@jh:/data/jh/flaskapi_test$ curl --header "Content-Type: application/json" --request POST --data '{"STG_ID":"stg000", "Value":"yap"}' http://100.60.180.190:8890/ast/healthCheck
curl: (28) Failed to connect to 100.60.180.190 port 8890: Connection timed out

 

 

해결 1 : Request를 하고자 하는 IP를 수정 (Server작업 & 내부IP주소로 Request)

(jh) gpuadmin@jh:/data/jh/flaskapi_test$ curl --header "Content-Type: application/json" --request POST --data '{"STG_ID":"stg000", "Value":"y│
ap"}' http://127.0.0.1:8890/ast/healthCheck

 "STG_ID": "stg000", 
  "Value": "yap", 
  "health": "green"
}

 

 

 

상황 2 : curl을 제대로 날렸는데, python code 내 get_response 하는 부분에서 NoneType Error가 뜸

오류 2 : TypeError: 'NoneType' object is not subscriptable

원인 2 : 문법에 맞게 명령어를 날리지 못해서 생기는 문제 (인자를 전부 못받은 상태로 get_json하니 NoneType Error가 발생 하는 것)

해결 2 : 문법에 맞게 명령어 날리기

curl --header "Content-Type: application/json" \
--request POST \
--data '{"param1":"value1", "param2":"value2"}' \
http://request_address

# Example
curl --header "Content-Type: application/json" \
--request POST \
--data '{"STG_ID":"stg000", "Value":"yap"}' \
http://127.0.0.1:8890/ast/healthCheck
{
  "STG_ID": "want_data", 
  "Value": "hihihi", 
  "health": "green"
}

 

 

 

 

반응형

댓글