Android socket& HTTP响应标头

时间:2012-09-28 23:24:40

标签: android http sockets http-headers response

有趣的是:我可能偶然找到了Is it possible to send HTTP request using plain socket connection and receive response without headers?的解决方案。我希望我忽视了一些事情。

无论如何,我正在连接到Web服务器,发送HTTP请求,接收响应并关闭连接。实际的HTTP会话(服务器端的tcpdump)如下所示:

GET /blah.php?param1=test1t&param2=test2 HTTP/1.0

HTTP/1.1 200 OK
Date: Sat, 22 Sep 2012 10:16:46 GMT
Server: Apache/2.2.17 (Ubuntu)
X-Powered-By: PHP/5.3.5-1ubuntu7.8
Vary: Accept-Encoding
Content-Length: 17
Connection: close
Content-Type: text/html

<pre>173364</pre>

冷却。它工作......到目前为止。现在这是代码。字符串szRetval仅包含“&lt; pre&gt; 173364&lt; / pre&gt;”。

Socket s = new Socket("1.2.3.4", 80);
//DataInputStream in = new DataInputStream(s.getInputStream());
BufferedReader bin = new BufferedReader(new InputStreamReader(s.getInputStream()));
DataOutputStream out = new DataOutputStream(s.getOutputStream());

out.writeBytes(szRequest);
String szRetval = "";
String szLine = "";
while((szLine=bin.readLine())!=null) {
    szRetval += szLine;
}
s.close();
return szRetval;

从代码示例中可以看出,我已经从DataInputStream切换到BufferedReader。它没有区别,所以我想这与Socket类本身有关。

为什么为什么(原始)套接字不返回http响应头?

Android 2.3.3,AsyncTask中的网络I / O,不使用代理。

0 个答案:

没有答案