gpt4 book ai didi

java - 如何重新创建 html 请求 header ?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:42 26 4
gpt4 key购买 nike

我目前正在编写一个 Java 应用程序来远程控制我的 Roku。我发现this网站并用它来控制我的 Roku。从 Chrome 开发者工具中,我观察了它的数据流量,并找到了控制 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

然后我尝试在 Java 中重新创建此 POST 请求,结果如下所示:

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% 确定这是重新创建请求的正确方法,因为它与原始(工作)的效果不同。然而,这可能是因为我改变了一些实际上可能很重要的小细节。所以我的问题是,这是否是重新创建请求的正确方法?如果是,为什么它不起作用?如果不是的话是什么?任何帮助表示赞赏。

最佳答案

感谢 tgkprog 的评论,我将代码编辑为:

HttpURLConnection urlConn;
URL url = new URL("http://192.xxx.x.82:8060/keypress/Right");
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setDoOutput(true);

try(DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream())) {
wr.writeChars("");
}

System.out.println(urlConn.getResponseCode());

现在它工作得很好,我可以控制我的 Roku,问题是我没有在标题中使用正确的键,因为它们在 Chrome 中没有大写锁定(编辑:不需要它们)。

关于java - 如何重新创建 html 请求 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com