JavaRush /Blog Java /Random-FR /JSOUP + réponse multipart/form-data
wildsinner
Niveau 41
Самара

JSOUP + réponse multipart/form-data

Publié dans le groupe Random-FR
Bonjour, En général, vous devez envoyer des données au site sous la forme d'une réponse sous la forme multipart/form-data. Il n'est pas difficile d'intercepter une requête générée par un navigateur, mais exécuter la même à l'aide de JSOUP est difficile. A titre d'exemple, vous pouvez prendre le formulaire le plus simple qui générera la demande souhaitée.
En-têtes de requête Les en-têtes provisoires sont affichés Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; border=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Origine : null Upgrade-Insecure-Requests :1 User-Agent : Mozilla/5.0 (Windows NT 6.1 ; WOW64) AppleWebKit/537.36 (KHTML, comme 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 : formulaire-données ; name="text" texte par défaut ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Content-Disposition : form-data ; nom="fichier1"; filename="" Type de contenu : application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposition du contenu : données de formulaire ; nom="fichier2"; filename="" Content-Type : application/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- J'ai essayé de différentes manières de générer une requête similaire avec différentes options, et j'ai opté pour celle-ci, mais jusqu'à présent, « danser avec des tambourins » ne produit pas de résultats. Peut-être que quelqu'un a de l'expérience en la matière. Si cela ne vous dérange pas, veuillez me diriger sur le bon chemin. Il est également possible qu'il existe un moyen d'intercepter une requête générée par JSOUP, ce qui en principe nous permettrait également d'avancer. Merci 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();
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION