본문 바로가기

PROGRAMMING/PYTHON

C에서 보내는 HTTP-POST 데이터 python flask로 받기


  • flask로 만든 간단한 web server에서 C 프로그램에서 HTTP-POST 방식으로 보내는 데이터를 받고싶다.

  python web server(flask) 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from flask import Flask
from flask import request
import json
 
 
app = Flask(__name__)
 
app.config['DEBUG'= False 
 
@app.route("/curlc",methods=['GET','POST']) # C에서 ip address:port/router 주소로 전송햇음
def curlc():
    test_data = None # 정말 test용 데이터
    if request.headers['Content-Type']== 'application/json'# c프로그램 CURLOPT_HTTPHEADER를 설정햇으니 같이 맞춰줌
        test_data=request.data.decode('utf-8'# binary로 날아오기 때문에 
        print(test_data,type(test_data)) # data 내용과 data의 type 확인
    return 0 # 이 부분은 응답 값이 필요가 없기때문에 0으로 넘겨버림. 요청에 대한 응답이 필요하면 그에 응하는 값을 return
 
 
if __name__ == '__main__':
    app.run(host='0.0.0.0',port=8008
 
cs


  • request.json과 request.data 모두 시도해봤음. 
  • 내가 짠 프로그램에서는 request.data가 반응해서 requests.data를 사용함.
  • 원하는대로 데이터를 잘라야 하므로 파싱 작업이 필요함.