반응형
Ajax 대신 Java에서 사용할 수 있는 방법
URL url = new URL("http://localhost:5000/test");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 리퀘스트 메소드를 POST로 설정
conn.setRequestMethod("POST");
// 연결된 connection 에서 출력도 하도록 설정
conn.setDoOutput(true);
// 요청 파라미터 출력
// - 파라미터는 쿼리 문자열의 형식으로 지정 (ex) 이름=값&이름=값 형식&...
// - 파라미터의 값으로 한국어 등을 송신하는 경우는 URL 인코딩을 해야 함.
try (OutputStream out = conn.getOutputStream()) {
out.write(("description=" + URLEncoder.encode(ocrDescription,"UTF-8")).getBytes());
}
// 응답 내용(BODY) 구하기
try (InputStream in = conn.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream()) {
byte[] buf = new byte[1024 * 8];
int length = 0;
while ((length = in.read(buf)) != -1) {
out.write(buf, 0, length);
}
System.out.println(new String(out.toByteArray(), "UTF-8"));
}
// 접속 해제
conn.disconnect();
Python에서는 json 형태 반환 필요 없이 그냥 값을 반환하면 Java에서 Inputstream으로 뽑아낼 수 있다.
@app.route('/test', methods=['POST'])
def connect():
parser = reqparse.RequestParser()
parser.add_argument('description', type=str)
args = parser.parse_args()
print(args['description'])
res ="python Result " + args['description']
return res
Body에 데이터를 심어서 보내므로 POST로 보내고 POST로 받아야 함.
반응형
'De2o freelancer (OCR)' 카테고리의 다른 글
Merge conflict 해결 방법 (0) | 2020.10.08 |
---|---|
고정 Sidebar (0) | 2020.10.06 |
Korean Word2Vec 모델 & 테스트 (0) | 2020.09.29 |
정적 분석 도구 Sonarqube (0) | 2020.09.28 |
Mocmvc file 포함 parameter 전송 (0) | 2020.09.25 |