gpt4 book ai didi

java - 从包含 HTTP header 的字符串中提取值

转载 作者:搜寻专家 更新时间:2023-11-01 03:08:22 28 4
gpt4 key购买 nike

我正在寻找一种更好的方法来从包含 HTTP header 的字符串中提取数据。例如,我想从字符串的内容长度部分获取数字 160:“Content-Length: 160\r\n”。

似乎 HTTP header 中的所有数据都以名称、冒号和空格开头,在值之后紧跟“\r”和“\n”字符。

目前我正在这样做:

int contentLengthIndex = serverHeader.lastIndexOf("Content-Length: ");
int contentLastIndex = serverHeader.length()-1;
String contentText = serverHeader.substring(contentLengthIndex + 16, contentLastIndex);
contentText = contentText.replaceAll("(\\r|\\n)", "");
int contentLength = Integer.parseInt(contentText);

但看起来很乱,而且只对获取字符串末尾的“Content-Length”有好处。是否有更好更通用的解决方案用于从包含 HTTP header 的字符串中提取值,该 header 可以调整以用于获取 int 值或 String 值?

我还应该提到,连接需要能够在请求后将数据返回给浏览器,据我所知,这使我无法获得使用 HttpURLConnection 的好处。

最佳答案

一个快速的解决方案是:

new Scanner(serverHeader).useDelimiter("[^\\d]+").nextInt());

另一种方法,如果你想创建一个 Hashtable 的标题:

 String[] fields = serverHeader.trim().split(":");

String key = fields[0].trim();
String value = fields[1].trim();

我不确定你为什么要做这个手册,已经有 API 了!

关于java - 从包含 HTTP header 的字符串中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799903/

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