JavaRush /Java Blog /Random-KO /JSOUP + 다중 부분/양식 데이터 응답
wildsinner
레벨 41
Самара

JSOUP + 다중 부분/양식 데이터 응답

Random-KO 그룹에 게시되었습니다
안녕하세요. 일반적으로 multipart/form-data 형식의 응답 형식으로 데이터를 사이트에 보내야 합니다. 브라우저에서 생성된 요청을 가로채는 것은 어렵지 않지만 JSOUP을 사용하여 동일한 요청을 실행하는 것은 어렵습니다. 예를 들어, 원하는 요청을 생성하는 가장 간단한 형식을 사용할 수 있습니다.
요청 헤더 임시 헤더가 표시됩니다. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; 경계=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Origin:null Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id:8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C -> 요청 페이로드 ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 콘텐츠 처리: 양식 데이터; name="text" 텍스트 기본값 ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 콘텐츠 처리: 양식 데이터; 이름="파일1"; filename="" 콘텐츠 유형: 애플리케이션/옥텟-스트림 ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 콘텐츠 처리: 양식 데이터; 이름="파일2"; filename="" Content-Type: application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- 다양한 옵션으로 유사한 요청을 생성하기 위해 여러 가지 방법을 시도하고 이것으로 결정했지만 지금까지는 "탬버린과 함께 춤을 추고 있습니다" 결과를 내지 않습니다. 아마도 누군가가 이 문제에 경험이 있을 것입니다. 괜찮으시다면 저를 올바른 길로 안내해주세요. JSOUP에 의해 생성된 요청을 가로채는 방법이 있을 수도 있으며, 이를 통해 원칙적으로 앞으로 나아갈 수도 있습니다. 감사합니다 Map responseMap= new HashMap (); String key1 = "------WebKitFormBoundary9A3GpeDAwfa0TBDK\r\n" + "Content-Disposition: form-data; name=\"text\"\r\n\r\n"; String value1 = "text default"; headersMap.put(key1, value1); String key2 = "\r\n------WebKitFormBoundary9A3GpeDAwfa0TBDK\r\n" + "Content-Disposition: form-data; name=\"doc_sma_ref_file\"; filename=\"\"" + "\r\nContent-Type: application/octet-stream\r\n\r\n"; String value2 = ""; headersMap.put(key2, value2); String key3 = "\r\n------WebKitFormBoundary9A3GpeDAwfa0TBDK\r\n" + "Content-Disposition: form-data; name=\"doc_val_ref_file\"; filename=\"\"" + "\r\nContent-Type: application/octet-stream\r\n\r\n"; String value3 = ""; headersMap.put(key3, value3); String key4 = "\r\n------WebKitFormBoundary9A3GpeDAwfa0TBDK--"; String value4 = ""; headersMap.put(key4, value4); Connection.Response resBGT = Jsoup.connect(URL) .header("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary9A3GpeDAwfa0TBDK") .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36") .followRedirects(true) .data(responseMap) .cookies(cookies) .ignoreHttpErrors(true) .timeout(15000) .method(Connection.Method.POST) .execute();
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION