JavaRush /จาวาบล็อก /Random-TH /JSOUP + การตอบสนองหลายส่วน/แบบฟอร์มข้อมูล
wildsinner
ระดับ
Самара

JSOUP + การตอบสนองหลายส่วน/แบบฟอร์มข้อมูล

เผยแพร่ในกลุ่ม
สวัสดีตอนบ่าย โดยทั่วไป คุณต้องส่งข้อมูลไปยังไซต์ในรูปแบบของการตอบกลับในรูปแบบ 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 เช่น Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id:8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C -> คำขอเพย์โหลด ------ WebKitFormBoundaryjtkXVNw9YVG1H2P9 การจัดการเนื้อหา: แบบฟอร์มข้อมูล; ชื่อ = "ข้อความ" ค่าเริ่มต้นของข้อความ ------ WebKitFormBoundaryjtkXVNw9YVG1H2P9 การจัดการเนื้อหา: แบบฟอร์มข้อมูล; ชื่อ = "file1"; ชื่อไฟล์ = "" ประเภทเนื้อหา: แอปพลิเคชัน / octet-stream ------ WebKitFormBoundaryjtkXVNw9YVG1H2P9 การจัดการเนื้อหา: แบบฟอร์มข้อมูล; ชื่อ = "file2"; 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