gpt4 book ai didi

java - 如何按原样将文本 HTTP 响应读入字符串?

转载 作者:行者123 更新时间:2023-11-29 05:47:16 25 4
gpt4 key购买 nike

以下代码使用 BufferedReader 从 HTTP 响应流中读取:

final StringBuilder responseBuilder = new StringBuilder();
String line = bufferedReader.readLine();
while (line != null) {
responseBuilder.append(line);
responseBuilder.append('\n');
line = bufferedReader.readLine();
}
response = responseBuilder.toString();

但是将 '\n' 附加到每一行似乎有点缺陷。我想完全按原样返回 HTTP 响应,那么如果它在最后一行之后没有返回字符怎么办?使用上面的代码无论如何都会添加一个 - 有更好的方法吗?

最佳答案

I want to return the HTTP response exactly as-is

那么不要使用 readLine() - 就这么简单。我建议改用 StringWriter:

StringWriter writer = new StringWriter();
char[] buffer = new char[8192];
int charsRead;
while ((charsRead = bufferedReader.read(buffer)) > 0) {
writer.write(buffer, 0, charsRead);
}
response = writer.toString();

请注意,如果编码错误,即使这样也无法正常工作。要保留准确 HTTP 响应,您需要将其作为二进制 流读取(和写入)。

关于java - 如何按原样将文本 HTTP 响应读入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406634/

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