JavaRush /Blog Java /Random-PL /JSOUP + odpowiedź wieloczęściowa/formularz-dane
wildsinner
Poziom 41
Самара

JSOUP + odpowiedź wieloczęściowa/formularz-dane

Opublikowano w grupie Random-PL
Dzień dobry. Ogólnie rzecz biorąc, dane do serwisu należy przesyłać w formie odpowiedzi w postaci danych wieloczęściowych/formularzy. Przechwycić żądanie wygenerowane przez przeglądarkę nie jest trudno, ale wykonanie tego samego za pomocą JSOUP jest trudne. Jako przykład możesz przyjąć najprostszy formularz, który wygeneruje żądane żądanie.
Nagłówki żądań Wyświetlane są tymczasowe nagłówki. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; granica=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Pochodzenie: null Upgrade-Insecure-Requests:1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, jak Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id: 8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C ->Żądaj ładunku ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Dyspozycja zawartości: dane formularza; nazwa="tekst" domyślny tekst ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Dyspozycja treści: dane formularza; nazwa="plik1"; nazwa_pliku="" Typ zawartości: aplikacja/strumień oktetu ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Dyspozycja zawartości: dane formularza; nazwa="plik2"; filename="" Content-Type: application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- Próbowałem na różne sposoby wygenerować podobne żądanie z różnymi opcjami i zdecydowałem się na to, ale jak dotąd „tańczyłem z tamburynami” nie daje rezultatów. Być może ktoś ma doświadczenie w tej kwestii. Jeśli nie masz nic przeciwko, proszę skieruj mnie na właściwą ścieżkę. Możliwe jest również, że istnieje sposób na przechwycenie żądania wygenerowanego przez JSOUP, co w zasadzie pozwoliłoby nam również pójść dalej. Dziękuję 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();
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION