JavaRush /Blog Java /Random-VI /JSOUP + phản hồi nhiều phần/biểu mẫu dữ liệu
wildsinner
Mức độ
Самара

JSOUP + phản hồi nhiều phần/biểu mẫu dữ liệu

Xuất bản trong nhóm
Xin chào, Nói chung, bạn cần gửi dữ liệu đến trang web dưới dạng phản hồi ở dạng multipart/form-data. Không khó để chặn một yêu cầu do trình duyệt tạo ra, nhưng việc thực hiện yêu cầu tương tự bằng JSOUP thì khó. Ví dụ: bạn có thể sử dụng biểu mẫu đơn giản nhất để tạo ra yêu cầu mong muốn.
Tiêu đề yêu cầu Tiêu đề tạm thời được hiển thị Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; ranh giới=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Xuất xứ:null Nâng cấp-Không an toàn-Yêu cầu:1 Tác nhân người dùng:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id:8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C ->Yêu cầu tải trọng ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Bố trí nội dung: dữ liệu biểu mẫu; name="text" mặc định văn bản ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Bố trí nội dung: dữ liệu biểu mẫu; tên="file1"; filename="" Loại nội dung: ứng dụng/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Bố trí nội dung: dữ liệu biểu mẫu; tên="file2"; filename="" Content-Type: application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- Tôi đã thử bằng nhiều cách khác nhau để tạo ra một yêu cầu tương tự với các tùy chọn khác nhau và đã giải quyết được yêu cầu này, nhưng cho đến nay vẫn “nhảy múa với tambourines” không tạo ra kết quả. Có lẽ ai đó có kinh nghiệm trong vấn đề này. Nếu không phiền, xin hãy chỉ cho tôi con đường đúng đắn. Cũng có thể có một cách để chặn yêu cầu do JSOUP tạo ra, về nguyên tắc cũng sẽ cho phép chúng tôi tiếp tục. Cảm ơn 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();
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION