gpt4 book ai didi

android - 客户端发送了没有主机名的 HTTP/1.1 请求(请参阅 RFC2616 第 14.23 节)- 来自 Android

转载 作者:行者123 更新时间:2023-11-29 18:07:55 26 4
gpt4 key购买 nike

我在 Apache 日志中看到了这一点。基本上,请求是使用 HTTPUrlConnection 从 Android Emulator 发出的。这是我的代码。

                URL url = new URL(strUrl);  
Log.d(params[0],"UR");


conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "Basic " + Base64.encodeToString(toencode, Base64.DEFAULT));
conn.setRequestProperty("Host", "www.domain.com");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; PPC; en-US; rv:1.3.1)");
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestMethod("GET");

conn.setConnectTimeout (30000) ;
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
String data = conn.getInputStream().toString();
return data;

我正在发送用户代理 header 以确保服务器没有过滤不可识别的用户代理。我使用 Wireshark 捕获了流量。这个要求似乎没问题。不知道还要寻找什么。花了几个小时在这上面没有运气。

 GET Authenticate/ HTTP/1.1\r\n
Host: www.domain.com\r\n
User-Agent: Mozilla/5.0 (Macintosh; U; PPC; en-US; rv:1.3.1)\r\n
Accept-Charset: UTF-8\r\n
Connection: Keep-Alive\r\n
Accept-Encoding: gzip\r\n
\r\n

服务器响应:

 Request Version: HTTP/1.1
Status Code: 400
Response Phrase: Bad Request


<h1>Bad Request</h1>\n
<p>Your browser sent a request that this server could not understand.<br />\n

并且在 apache 日志中:

 client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23)

在这一点上,我觉得我需要回到 HttpClient 并尝试一下。我想我应该使用 HttpUrlConnection 因为谷歌推荐它。但是我对 HttpURLConnection 不满意。

有人知道吗?

最佳答案

模拟器没有正确发送主机 header 。所以我从服务器收到了错误的请求。Wireshark 帮助我解决了这个问题。

关于android - 客户端发送了没有主机名的 HTTP/1.1 请求(请参阅 RFC2616 第 14.23 节)- 来自 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418458/

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