发布 Google Maps API v2 Android 的流式传输方向

2024-04-12

因此,我的应用程序的一部分构建了一个导航方向字符串,然后尝试解析 JSON 并在地图上绘制折线路线。我首先使用位置变量或区域设置常量构建字符串。我最终得到类似的东西

https://maps.googleapis.com/maps/api/directions/json?origin=Full Frame Documentary Film 
Festival, Durham, 27701&destination=601 W Peace St, Raleigh,27605&sensor=false&key={API_KEY}
  • 没有新行(我添加它是为了便于阅读),并且 {API_KEY} 是我实际的 api 密钥。

我遇到的问题是,当我将该 URL 字符串传递给此下载 Url(String url String) 方法时

private String downloadUrl(String urlString) throws IOException {
    Log.d(TAG, "Downloaded string = " + urlString);
    String data = "";
    InputStream stream = null;
    HttpURLConnection urlConnection = null;
    try {

        // Display our JSON in our browser (to show us how we need to implement our parser)
        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(urlString)); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

        URL url = new URL(urlString);

        // Create a http connection to communicate with url
        urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.connect();

        // read in our data
        stream = urlConnection.getInputStream(); 
        BufferedReader br = new BufferedReader(new InputStreamReader(stream)); 
        StringBuffer sb = new StringBuffer();   

        // read in our data in, and append it as a single data string
        String line = "";
        while ((line = br.readLine()) != null) {
            Log.d(TAG,"url download stream: " + line);
            sb.append(line);
        }
        data = sb.toString();
        br.close();
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        Log.d(TAG, "Downloaded data = " + data);
        stream.close();
        urlConnection.disconnect();
    }

    return data;
}    

JSON 在我的浏览器中正确显示,我看到了 Google 在文档中描述的所有内容。但在接下来的几行中,当我尝试打开 URL 的连接并将 JSON 拉入字符串进行解析时,我收到 System.err 通知

05-02 09:56:01.540: W/System.err(32232): java.io.FileNotFoundException: 
https://maps.googleapis.com/maps/api/directions/json?origin=Full Frame Documentary 
Film Festival, Durham, 27701&destination=601 W Peace St, Raleigh, 27605&sensor=false&key={API_KEY}

我想我的困惑在于浏览器完美地显示了解析的地址,但随后到(我认为是)同一服务器的连接返回了 FNFE。我的假设是这样吗?如果是这样,我的钥匙可能真的是错的吗?令人困惑的是这段代码在另一个应用程序中工作。


您必须对参数进行 URL 编码,例如URL 中的空格(“”)写为“+”。您的浏览器在内部执行此操作,可能不会向您显示提交的 URL。

static String urlEncode(String value) {
    try {
        return URLEncoder.encode(value, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        return value;
    }
}

但不要对整个 URL 进行编码,仅对参数值进行编码。如果参数名称是非 ASCII,则也必须对其进行编码,但 Google API 不使用此类参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发布 Google Maps API v2 Android 的流式传输方向 的相关文章

随机推荐

  • pyshark - 来自 TCP 数据包的数据

    有没有办法使用 pyshark 获取 TCP 数据包的有效负载 我正在尝试比较多个 TCP 流中不同数据包的数据部分 但我找不到获取数据包数据的方法 pkt tcp data似乎不存在 如果您使用的是 pcap 文件 则在使用以下命令读取该
  • Autofixture 测试无效的构造函数参数

    我有以下课程和测试 我想测试将空值作为参数传递给构造函数并期待ArgumentNullException 但由于我使用 AutofixtureCreateAnonymous方法我得到一个TargetInvocationException反而
  • Mac OS 上“导入 cv”期间出现“分段错误”

    尝试在我的 Mac 上从源代码编译 opencv 我有以下 CMakeCache txt http pastebin com KqPHjBx0 http pastebin com KqPHjBx0 I make ccmake press c
  • 如何使用 Mongoid 更新 Rails 中嵌套的 Mongo 文档属性?

    如果这个问题缺乏细节 请提前道歉 我会看评论并添加我能添加的内容 我有一个具有以下内容的模型 class Product include Mongoid Document include Mongoid Timestamps field d
  • 运行模拟器时出错:架构 i386 的重复符号

    我添加了 ShareKit 框架来尝试 这是在模拟器中运行它的错误 duplicate symbol LFHRReadStreamClientCallBack in Xcode DerivedData build Objects norma
  • eclipse 无法删除某些断点

    双击eclipse左侧的蓝色条设置断点 再次双击可删除断点 这对我来说非常有用 但如果我使用 git 来签出不同的分支 通常断点的蓝点会变得 混乱 或其他什么 我无法再双击来取消它们 我被迫进入调试视角 并在 断点 视图中找到断点 然后右键
  • C# 正则表达式匹配带点的单词

    敏捷的棕色狐狸跳过了 懒狗 是英语 全字母表 字母表 也就是一个短语 包含所有字母 字母表 它已被用来测试 打字机字母表 和电脑 键盘和其他应用程序 涉及到所有的字母 英文字母表 我需要得到 字母表 正则表达式中的单词 上面的文字中有3个实
  • Telerik 报告不起作用

    处理报表 ReportStandart 时发生错误 无法建立与数据库的连接 请验证您的连接字符串是否有效 如果您使用应用程序配置文件中的命名连接字符串 请确保名称正确并且连接字符串设置存在于应用程序的配置文件中 内部异常 转到报表项目所在的
  • 从外部 php 系统登录 Odoo

    我有一个要求 我需要从外部 php 系统重定向到 Odoo 并且用户也应该登录 我想到了以下两种方法来完成此任务 来自 php 端的 url 重定向 它调用特定的控制器 并沿着 url 传递凭据 由于显而易见的原因 这不是一个安全的选项 从
  • 程序中出现了“\303”和“\215”——为什么? [复制]

    这个问题在这里已经有答案了 而不是我发现的程序中的杂散 302 here https stackoverflow com questions 5167656 error stray 302 in program 我收到错误消息 algo c
  • 获取公共 Google 文档文件的下载链接

    正在阅读谷歌文档 API http code google com apis documents docs 3 0 developers guide protocol html DownloadingFiles我发现这个 正在下载 无法以其
  • 为什么我们需要结构体? (C#)

    要使用结构体 我们需要实例化该结构体并像使用类一样使用它 那我们为什么不首先创建一个类呢 结构是一种值类型 因此如果您创建副本 它实际上会物理复制数据 而对于类 它只会复制对数据的引用
  • Firebase 无法在 Android Studio 模拟器上运行

    我当时正在做一个学习项目 一切都工作正常 但我将操作系统更改为 win11 同时擦除了所有以前的数据 现在 在使用任何类型的登录后 Firebase 都会停留在 正在加载 状态 实时数据库数据也不会显示 等待大约 5 10 个小时后 身份验
  • 从 Intellij 在远程主机上部署/运行 jvm 应用程序

    是否可以在 intellij 的远程服务器上部署 运行 出于测试目的 独立的 Java 应用程序 我并不是要连接到已经运行的 JVM 而是要从 intellij 在远程主机上启动一个新的 JVM 就像它在我的本地计算机上运行一样 目前没有内
  • python:如何重建需要编译的依赖项

    由于存在大量依赖项 我的 python 应用程序的虚拟环境的安装在部署过程中花费了太多时间 为了最大限度地减少时间 我想将驻留在 git 虚拟环境中的依赖项包括在内 以便它们在部署时就已经存在 主要问题是 由于机器之间的架构差异 需要重建与
  • 角度/形式整数验证器

    如何验证我的数字输入字段仅接受整数而不接受任何类型的小数 逗号 点 Code Component import FormGroup FormBuilder Validators from angular forms this savingD
  • NPM 如何更新/升级传递依赖?

    我在我的节点服务器中使用express v4 16 4 它已引入 cookie signature v1 0 6 我想将 cookie signature 升级到 v1 1 0 因为它有我需要的修复 有什么方法可以做到这一点 我认为我不应该
  • Charles Proxy:映射到 GET 请求而不是 OPTIONS [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有办法根据特定请求在 Charles 中进行本地映射 我的 API 发出 OPTIONS 请求 然后发出 GET 请求 当我在 Cha
  • 如何在React中添加事件监听器?

    我正在与用户和代理创建一个聊天应用程序 当代理在他单独的 Rainbow UI 上回复时 我试图检索消息 问题是这只能通过事件监听器来完成 如文档中所示 有人可以帮助我吗 我可以在哪里以及如何帮助我document addEventList
  • 发布 Google Maps API v2 Android 的流式传输方向

    因此 我的应用程序的一部分构建了一个导航方向字符串 然后尝试解析 JSON 并在地图上绘制折线路线 我首先使用位置变量或区域设置常量构建字符串 我最终得到类似的东西 https maps googleapis com maps api di