繁体   English   中英

解析来自Http Response的字符串形式的值

[英]Parsing Get values from Http Response as string

我正在使用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();

非常感谢!

我假设您想要括号之间的部分,因此我将在此Matcher使用此正则表达式: "\\\\{(.*?)\\\\}"

例如:

String response = new String(buffer, "UTF-8");
Pattern pattern = Pattern.compile("\\{(.*?)\\}");
Matcher matcher = pattern.matcher(response);
if (matcher.find())
{
    System.out.println(matcher.group(1));
}

我遵循了这个StackOverflow链接的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM