Как добавить параметр 'request payload' для отправки запроса? - PullRequest
1 голос
/ 15 мая 2019

Как создать этот запрос из CURL с помощью Jsoup или apache httpClient?

curl 'https://www.instagram.com/rupload_igphoto/fb_uploader_1557924189090' 
-H 'cookie: mid=XNvymQAEAAFb4YRR4JkElxTB8I2_; csrftoken=IEpfr1jO1kB4EOFblQE285c9h5vD1LSh; ds_user_id=12828973541; sessionid=12828973541%3AXYcFYbRfWuitX7%3A23; rur=FRC; urlgen="{\"83.242.226.146\": 8359}:1hQtFJ:UiVB7Sl3c0NxnZh7VB9XujhuDGc"' 
-H 'origin: https://www.instagram.com' 
-H 'accept-encoding: gzip, deflate, br' 
-H 'accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7' 
-H 'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1' 
-H 'x-requested-with: XMLHttpRequest' 
-H 'x-csrftoken: IEpfr1jO1kB4EOFblQE285c9h5vD1LSh' 
-H 'x-ig-app-id: 1217981644879628' 
-H 'x-entity-name: fb_uploader_1557924189090' 
-H 'offset: 0' 
-H 'x-instagram-ajax: 748957cebea4' 
-H 'content-type: image/jpeg' 
-H 'accept: */*' 
-H 'authority: www.instagram.com' 
-H 'x-instagram-rupload-params: {"media_type":1,"upload_id":"1557924189090","upload_media_height":1080,"upload_media_width":1079}' 
-H 'x-entity-length: 16620' 
-H 'referer: https://www.instagram.com/create/details/'
--data-binary $'ÿØÿà\u00\u10JFIF\u00\u01\u01\u00\u00\u01\u00\u01\u00\u00ÿÛ\u00C\u00\u03\u02\u02\u02\u02\u02\u03\u02\u02\u02\u03\u03\u03\u03\u04\u06\u04\u04\u04\u04\u04\u08\u06\u06\u05\u06\u09\u08\n\n\u09\u08\u09\u09\n\u0c\u0f\u0c\n\u0b\u0e\u0b\u09\u09\r\u11\r\u0e\u0f\u10\u10\u11\u10\n\u0c\u12\u13\u12\u10\u13\u0f\u10\u10\u10ÿÛ\u00C\u01\u03\u03\u03\u04\u03\u04\u08\u04\u04\u08\u10\u0b\u09\u0b\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10\u10ÿÀ\u00\u11\u08\u048\u047\u03\u01"\u00\u02\u11\u01\u03\u11\u01ÿÄ\u00\u1a\u00\u01\u01\u01\u01\u01\u01\u01\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u02\u01\u03\u04\u05\u08ÿÄ\u00\u1f\u10\u01\u01\u00\u02\u03\u01\u01\u01\u01\u01\u00\u00\u00\u00\u00\u00\u00\u01\u111\u02\u12AQa\u21q"ÿÄ\u00\u17\u01\u01\u01\u01\u01\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u01\u02\u04ÿÄ\u00\u1c\u11\u01\u00\u02\u03\u01\u01\u01\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u01\u11\u211qAaQÿÚ\u00\u0c\u03\u01\u00\u02\u11\u03\u11\u00?\u00ýö\u03\u89Ú\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u02nÔ\u9b°`\u00\u00\u09»cnØ\u00\u00]%WI\u00\u00\u19tÖ]\u02@\u00\u00o\u1d©<v \u00\u07 \u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u017jMØ0\u00\u00\u04ݱ·l\u00\u00.\u92«¤\u80\u00\u0cºk.\u81 \u00\u007\u8eÔ\u9e;P\u00\u03Ð\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u9bµ\'\u900\u00\u00\u04ݱV$\u00\u00ºJ\u8b2\u09\u0b0\u00˦\u80\u81VJË(01U8\u838í@\u00\u00ô\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u002é  m\u98¬\u00\u00\u19c@@«2Ë0\u0c\u00\u06^?\u1a\u02E3¯À`b\u80\u00\u00Þµ¸\u90\u19%\u1a\u03°\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00Ë2\u95²ÏA \u00\u00\u00\u03/\u1f\u8cP\u08\u15Ö3\u14\u18\u00\u06 \u03:Æ\u80\u00\u007\u14\u07P\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u19fR°\u10*ñøÌP`\u00\u00\u00\u003\u11 3«1T\u02q~\u1dj\u80gXÜ@\u00\u00X\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u031\u1a\u02zþ\u9dj\u80N+1~,\u04\u0b\u01\u02±>\u18\u80\u91X\u86\'ÀH¬O\u8d\u04\u0b\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u01=\u8cÐP\u80\u15\u99ôÌH\nÌ;Dæ}f`/´;Dv\u87oÀWo÷â{~3µ\u05öü;~#µ3A}¿\u0eß\u88íúÌþ\u83§o÷ã\u9e\u7fLþ\u83§o÷ã\u9e\u7fLþ\u83§o÷ã\u9e\u7fLþ\u83§o÷ã\u9e\u7fLþ\u83§o÷ã\u9e\u7fLþ\u83§o÷â3~\u9d¨/·ã{Dvü;\u02ûC1\u19\u8d\u05f}j\u00X\u8cß­íAB{~70\u1a\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u03-ÂvÛrÀ\u01\u97\u97Àk;1\u80ÜÖ\u16Æ[A¦gÔ³"+´;~\'´goÁWÚ³59¬ÏÚ"óúÌϨÌ;~\n¾Ñ\u9d¿\u11Ú\u9d¯Ð_o÷â;~\u9d¿A}¿\u0eß\u88íúvý\u05öü;~#·éÛô\u17Ûðíø\u8eߧoÐ_o÷â;~\u9d¯ÐtÌno×>ß\u86`:ö§df·°/2\u89% ¼ÖË\u13, ,L¸V`\u00\u00ÜÖ\u00©rÔ*\\\u83@\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u01\u97MO `2Ü\u01o\u91\u21n\u03E¸M¶\u8c·\u025\u97\u92mÉl\u80ÜÖ\'µ`+´gjËc;PVoÖf\'?k;@Wff§µe¿h.ßµ\u9d¢;3µ\u07NÐí\u1cóLÐtí\u0eÑÏ4Í\u07NÐí\u1cóLÐtí\u0eÑÏ4Í\u07NÐí\u1cóNÔ\u1de¿[Ûë\u94±]¾\u83¬¿+g/®rülåô\u1d3ñ³\u97ÔK\u86Ë\u91]\u1b/ÔK\u85\u02\u86KãA²ª\\ \u05\u8c\u97-\u00\u00VÚ\u9e7Å\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u9e[RnÁ\u89·5WH\u03IÛmM¸\u10·\u096Ë|\u80Z\u93I· ÛËã3\u96[#-´FÛ\u19\u9a\u9bde¶\u82­\u8cíñ9\u8cÍ\u05[ö§´Nc;P_j\u9bÊ"ò\u9fYØ\u1d;C´síNÔ[tí\u0eÑϵ;P·NÐí\u1cûSµ\u0btí\u0eÑϵ;P·NÐ\u9c\u9cûVöú\u0e³\u97ÕJã*¥ø\u0eÒ¶rúç.U/Ðt\u97\n\u95Î\\*\\\u03¤¹T¸s\u95RäWFËõ\u1co\u8a\u05\u09\u97\n\u01Rå-Ð(\u00&Ö\u85M\u03@\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u00\u01ÿÙ' --compressed ;

Я могу создать какой-нибудь путь запроса (kotlin)

val c = Jsoup.connect(link)
            .timeout(20 * 1000)
            .userAgent(userAgent).ignoreContentType(true)
            .header("X-Requested-With", "XMLHttpRequest")
            .header("origin", "https://www.instagram.com")
            .header("accept-encoding","gzip, deflate, br")
//            .header("accept-language","ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7")
            .header("user-agent", userAgent)
            .header("x-requested-with","XMLHttpRequest")
            .header("x-csrftoken", csrf)
            .header("x-ig-app-id", igAppId)
            .header("x-entity-name", "fb_uploader_$ts")
            .header("offset", "0")
            .header("x-instagram-ajax", rollOutHash)
            .header("content-type", "image/jpeg")
            .header("accept", "*/*")
            .header("authority", "www.instagram.com")
            .header("x-instagram-rupload-params","{\"media_type\":1,\"upload_id\":\"${ts}\",\"upload_media_height\":1080,\"upload_media_width\":1079}")
            .header("x-entity-length", "16620")
            .header("content-length", "16620")
            .header("referer","https://www.instagram.com/create/details/")
            .cookies(cookie)

Я могу добавить все заголовки и файлы cookie для запроса, но сейчас не знаю, как добавить файл изображения в этот запрос. Файл изображения в параметре --data-binary. Как это сделать? (извините за мой английский)

1 Ответ

1 голос
/ 16 мая 2019

Как упоминалось также в комментариях. На данный момент это не работает с Jsoup. В связи с этим существует открытый выпуск , и исправить это может быть так же просто, как изменить Request.body на byte[] и соответственно перегрузить requestBody -методы (конечно, используя OutputStream вместо BufferedWriter при необходимости).

Таким образом, вам нужно использовать альтернативу, если вы не хотите предоставлять пулл-запрос. При использовании apache httpclient эта альтернатива может выглядеть следующим образом:

HttpClients.createDefault().use {client ->
    val post = HttpPost("yourUri").apply {
        entity = ByteArrayEntity(File("yourFile").readBytes())
        // addHeader or setHeaders ... 
        addHeader("headerName", "value")
        // ... all your headers...
    }

    client.execute(post)
}
...