파이썬의 요청 라이브러리를 사용하여 서버간에 이진 데이터와 텍스트 문자열 (또는 다른 일반 변수)을 보내려고합니다.Python 요청 이진 데이터로 텍스트를 보냅니다.
두 서버가 서로 이야기하고 있습니다. 서버 A은 파이썬 요청 라이브러리를 통해 GET 요청을 보냅니다.
color, file_data = requests.get('https://www.serverb.com/testing', params = {...})
서버 B 다음 같은 것을 수행합니다 : 그것은 다음과 같이 보입니다 내가 이것을 시도 할 때
var1 = request.args.get('var1')
var2 = request.args.get('var2')
# This function creates a binary file, saves it to disk, and returns the file name.
res = some_function(var1, var2)
file_data = codecs.open(res, 'rb').read()
return 'Success!', file_data
그러나, 서버 B가 500 오류가 발생합니다.
내가 할 수없는 일이 불가능합니까? 바이너리 데이터를 다시 보낼 수는 있지만 커스텀 헤더 만 있으면 제대로 작동 할 것이고이를 설정하는 방법에 대한 도움을 받으실 수 있습니다.
미리 감사드립니다.
xyres, 신속하고 자세한 답변을 주셔서 감사합니다. 즉, "색상"의 길이는 5 문자입니다. 그렇지 않습니까? 더 중요한 것은, 우리가 알아야 할 "붉은 색"의 길이가 아닌가? 그렇다면 색상은 "파란색", 즉 4 자입니다. 클라이언트가 반환 값의 문자 수를 어떻게 알 수 있습니까? – pshep123
@ pshep123 예, 길이는 제한이 없습니다. 서버의'color' 변수의 길이를 계산하여 헤더 값을 설정해야합니다. – xyres
좋아, 더 큰 질문은 간단하게'return color, file_data'라는 줄을 사용하고,'HTTP/1.1 200 OK ... '비트 전체를 만드는 것이 아니라는 것입니다. 간단한 '반환'에 헤더를 포함하려면 어떻게해야합니까? – pshep123