JavaRush /Java Blog /Random-ID /JSOUP + respons multibagian/formulir-data
wildsinner
Level 41
Самара

JSOUP + respons multibagian/formulir-data

Dipublikasikan di grup Random-ID
Selamat siang, Secara umum, Anda perlu mengirimkan data ke situs dalam bentuk respon dalam bentuk multipart/form-data. Tidak sulit untuk mencegat permintaan yang dibuat oleh browser, tetapi mengeksekusi permintaan yang sama menggunakan JSOUP sulit dilakukan. Sebagai contoh, Anda dapat mengambil formulir paling sederhana yang akan menghasilkan permintaan yang diinginkan.
Header Permintaan Header sementara ditampilkan Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; batas=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Asal:null Permintaan-Peningkatan-Tidak Aman:1 Agen-Pengguna:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id:8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C ->Request Payload ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Content-Disposition: form-data; name="text" text default ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposisi Konten: data formulir; nama="file1"; nama file="" Tipe Konten: aplikasi/aliran oktet ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposisi Konten: data formulir; nama="file2"; filename="" Content-Type: application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- Saya mencoba dengan berbagai cara untuk menghasilkan permintaan serupa dengan opsi berbeda, dan memilih yang ini, tetapi sejauh ini "menari dengan rebana" tidak membuahkan hasil. Mungkin ada yang punya pengalaman dalam hal ini. Jika Anda tidak keberatan, tolong arahkan saya ke jalan yang benar. Mungkin juga ada cara untuk mencegat permintaan yang dibuat oleh JSOUP, yang pada prinsipnya juga memungkinkan kita untuk melanjutkan. Terima kasih 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();
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION