В настоящее время я пишу приложение Java, которое дистанционно управляет моим Roku. Я нашел сайт this и использовал его для управления моим Року. Из инструментов разработчика Chromes я просмотрел его трафик данных и нашел запрос html, который контролировал Roku. Это был заголовок.Как воссоздать заголовок запроса html?
POST /keydown/Play HTTP/1.1
Host: 192.xxx.x.82:8060
Connection: keep-alive
Content-Length: 0
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://remoku.tv
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://remoku.tv/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Затем я попытался воссоздать этот запрос POST в пределах Java, и это закончилось тем, что выглядели так:
HttpURLConnection urlConn;
URL url = new URL("html://192.xxx.x.82:8060/keydown/Play");
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestProperty("Connection", "keep-alive");
urlConn.setRequestProperty("Content-Length", "0");
urlConn.setRequestProperty("Cache-Control", "max-age=0");
urlConn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
urlConn.setRequestProperty("Origin", "http://192.xxx.x.254");
urlConn.setRequestProperty("Upgrade-Insecure-Requests", "1");
urlConn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConn.setRequestProperty("Referer", "http://192.xxx.x.254");
urlConn.setRequestProperty("Accept-Encoding", "gzip, deflate");
urlConn.setRequestProperty("Accept-Language", "en-US,en;q=0.8");
Я не 100% уверен, что это правильный путь, чтобы обновить запрос, потому что он не имеет такого же эффекта, как оригинал (рабочий). Однако это может быть связано с тем, что я изменил несколько мелких деталей, которые могут быть действительно важны. Поэтому мой вопрос к вам - если это правильный способ воссоздать запрос, и почему он не работает? Если не то, что есть? Любая помощь приветствуется.
http compoents frm apache https://hc.apache.org/ – tgkprog
Предпочтительно я хотел бы использовать предустановленные библиотеки и внешние банки. –
Насколько я знаю, Java не имеет полной поддержки http. Но вы можете увидеть http://docs.oracle.com/javaee/7/api/javax/ws/rs/core/HttpHeaders.html – tgkprog