본문 바로가기

De2o freelancer (OCR)

Java HttpURLConnection

반응형

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