JavaRush /Blog Java /Random-ES /JSOUP + respuesta multiparte/datos de formulario
wildsinner
Nivel 41
Самара

JSOUP + respuesta multiparte/datos de formulario

Publicado en el grupo Random-ES
Buenas tardes. En general, debe enviar datos al sitio en forma de respuesta en el formato multipart/form-data. No es difícil interceptar una solicitud generada por un navegador, pero ejecutar la misma usando JSOUP sí lo es. Como ejemplo, puede tomar el formulario más simple que generará la solicitud deseada.
Encabezados de solicitud Se muestran encabezados provisionales Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type:multipart/form-data; límite=----WebKitFormBoundaryjtkXVNw9YVG1H2P9 Origen:null Solicitudes-inseguras de actualización:1 Agente-usuario:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/47.0.2526.106 Safari/537.36 X - DevTools-Emulate-Network-Conditions-Client-Id:8DCCE949-56FA-4AB0-81B7-DA2BC7960E5C ->Solicitar carga útil ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposición de contenido: datos de formulario; nombre="texto" texto predeterminado ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposición de contenido: datos de formulario; nombre="archivo1"; filename="" Tipo de contenido: aplicación/flujo de octeto ------WebKitFormBoundaryjtkXVNw9YVG1H2P9 Disposición de contenido: datos de formulario; nombre="archivo2"; filename="" Tipo de contenido: aplicación/octet-stream ------WebKitFormBoundaryjtkXVNw9YVG1H2P9-- Intenté de varias maneras generar una solicitud similar con diferentes opciones y me decidí por esta, pero hasta ahora "bailando con panderetas" no produce resultados. Quizás alguien tenga experiencia en este asunto. Si no te importa, por favor dirígeme por el camino correcto. También es posible que exista una forma de interceptar una solicitud generada por JSOUP, lo que en principio también nos permitiría avanzar. Gracias 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();
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION