java - "\\A"分隔符在以下 Http Request 代码中的作用是什么?

标签 java android http

所以我在 Udacity 上学习这个 Android 应用程序开发类(class),但我很困惑。 以下函数返回一个JSON,但我不明白分隔符(“\A”)的用法。

  public static String getResponseFromHttpUrl(URL url) throws IOException {
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        try {
            InputStream in = urlConnection.getInputStream();

            Scanner scanner = new Scanner(in);
            scanner.useDelimiter("\\A");

            boolean hasInput = scanner.hasNext();
            if (hasInput) {
                return scanner.next();
            } else {
                return null;
            }
        } finally {
            urlConnection.disconnect();
        }
    }

那么\A 定界符的作用是什么?它是如何工作的?

最佳答案

useDelimiter(String pattern)方法采用正则表达式模式作为参数。

正则表达式模式在 Pattern 的 javadoc 中记录类。

\A 模式列在 Boundary matchers 中 block :

\A - The beginning of the input

这基本上指定没有定界符,所以 next() 方法将读取整个输入流。

问题代码等同于以下使用Apache Commons IO的代码图书馆:

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
    String content = IOUtils.toString(urlConnection.getInputStream(), Charset.defaultCharset());
    return (content.isEmpty() ? null : content);
} finally {
    urlConnection.disconnect();
}

关于java - "\\A"分隔符在以下 Http Request 代码中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58102714/

相关文章:

java - 如何在jsp中从我自己的应用程序播放视频文件(文件位于我自己的服务器Mysql数据库中。)

java - 我如何在 Bean 中获取 SessionScope 对象

java.lang.NoClassDefFoundError : okhttp3. OkHttpClient$Builder

android - 在Android Studio中搜索文本时如何排除自动生成代码?

http - 用户存在时服务器返回 400

http - 使用 net/http FileServer 服务文件导致 404

java - 如何测试 java-8 自定义收集器的身份和关联性约束

java - JAXB Java 生成 XML,为什么小写?

android - 使用 FileProvider 在 Android 用户之间共享文件

c - 解析 HTTP GET - C