【发布时间】:2014-03-08 13:14:41
【问题描述】:
我正在使用 ServerSocket 侦听 Android 应用程序上的某个端口,以便从服务器获得响应。 当服务器发送 http 响应时,我将其作为套接字接收,然后使用 Input Stream 获取数据。
无论如何,一切都很好,我得到了 Http 响应,但作为一个字符串(因为我正在读取输入流,然后将其解码为字符串):
GET /?code={Some code} HTTP/1.1
Host: localhost:9004
Connection: keep-alive
.
.
.
{More headers}
我需要的是解析代码(第一行),但我不想自己处理字符串。我相信有更简单的方法。
ServerSocket serverSocket = new ServerSocket(9004);
serverSocket.setReuseAddress(true);
serverSocket.setReceiveBufferSize(1500);
if(!serverSocket.isBound()) {
SocketAddress localAddress = new InetSocketAddress(9004);
serverSocket.bind(localAddress);
}
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int count = is.read(buffer);
String response = new String(buffer, "UTF-8");
// What should I do here??
serverSocket.close();
非常感谢!
【问题讨论】:
-
你在寻找什么字符串响应?一个单词、一个 URL 还是其他?
-
我正在寻找通常在查询字符串中找到的代码。这是响应的第一行。
-
现在我明白了:Http响应的内容是你编码的吗?
-
没有。它由谷歌编码
标签: java android parsing httpresponse