如何从 Android 设备访问本地 REST api?

2024-01-09

我的计算机上本地运行着一个 spring REST api。我想使用这个 api 进行 android 开发。

这是我的获取请求:

public static String sendGet(final String url) {
        StringBuilder result = new StringBuilder();
        HttpURLConnection urlConnection = null;
        try {
            String apiUrl = getAbsoluteUrl(url); // concatenate uri with base url eg: localhost:8080/ + uri
            URL requestUrl = new URL(apiUrl);
            urlConnection = (HttpURLConnection) requestUrl.openConnection();
            urlConnection.connect(); // no connection is made
            InputStream in = new BufferedInputStream(urlConnection.getInputStream());
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            String line;
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            urlConnection.disconnect();
        }
        return result.toString();
    }

我可以通过设备的浏览器访问我的 api。但是,当我在构建的 apk 中使用相同的 url 来发出请求时,不会建立任何连接。

我的清单包括:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

旁注:

我正在通过 USB 将我的设备连接到运行其余 api 的笔记本电脑。 我正在使用通过调用 ipconfig 找到的 WLAN IPv4 地址。

任何正确方向的提示将不胜感激 - 谢谢!

Edit to include chrome browser (on android device) output from local REST api running on my laptop (A GET request to return default guest user information): enter image description here


让我告诉你一个更简单的方法来做到这一点。如果您使用的是 Android 模拟器,则可以使用 10.0.2.2 作为 IP 地址来连接到可使用 REST API 的主机。

同样,如果您使用的 Genymotion 使用 Oracle Virtualbox,则可以使用 10.0.3.2。

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

如何从 Android 设备访问本地 REST api? 的相关文章

随机推荐

  • 如何使用后缀到上标格式化当前日期?

    我正在使用SimpleDateFormatter public static final DateFormat DATE FORMAT FULL FULL SPACES new SimpleDateFormat dd MMMM yyyy L
  • 以编程方式导航到 SwiftUI 中的新视图

    描述性示例 登录屏幕 用户点击 登录 按钮 执行请求 UI 显示等待指示器 然后在成功响应后我想自动将用户导航到下一个屏幕 如何在 SwiftUI 中实现这种自动转换 成功登录后 您可以将下一个视图替换为您的登录视图 例如 struct L
  • 在焦点元素上按下转义键时不会引发按键事件

    I want to know when the Esc key is pressed on an input element On Chrome 47 0 2526 106 m the Esc key removes the focus b
  • 将 Windows Phone 8 SDK 添加到 Visual Studio 2012

    我的互联网连接非常糟糕 并且我有 Windows Phone 8 SDK 文件 但没有安装文件 有没有办法将 Windows 8 SDK 添加到 Visual Studio 而无需下载安装文件 不明白你的意思 您需要安装现有的 Visual
  • VueJS - 单击时交换组件

    在我的应用程序中 我有很多按钮 当我按下按钮时 我想加载一个模板 替换所选按钮 模板 Vue component component 1 Vue component component 2 Buttons div div
  • 哪些浏览器支持 Xpath 2.0?

    我最近一直在使用 XPath 并且一直在搜索有关哪些浏览器支持 XPath 2 0 的信息 但运气不佳 我能找到的最好的是查询技术对照表 http en wikipedia org wiki Comparison of layout eng
  • 我可以同时使用 DataContract 和 Serialized 吗?

    我正在从事 WCF 服务 我的所有类都已使用 Serializable 属性进行序列化 但由于 k BackingField 属性命名问题 我使用了 DataContract 和 DataMember 属性 所以我可以同时使用这两个属性 如
  • C# 列表和枚举器的属性

    我有以下问题 我有一个列表并将字符串项目添加到该列表中 然后我从列表中创建一个枚举器 当我用循环遍历列表时MoveNext 当我直接访问枚举器时 它会起作用 当我使用枚举器属性访问枚举器时 它不起作用 这MoveNext 命令不会增加索引
  • 将 OpenCV 与 Django 结合使用

    我想在我的 Django 应用程序中使用 OpenCV 由于 OpenCV 是一个库 我认为我们可以像任何其他库一样使用它 当我尝试使用导入它时import cv2在 Django 的视图中 它工作正常 但是当我尝试在 Django 视图中
  • 页面顶部固定浮动 div 中的 Bootstrap 警报

    我有一个使用 Bootstrap 的 Web 应用程序 2 3 2 公司政策 如果不对多个 Web 应用程序进行大量测试 我们就无法升级到 3 0 我们在此应用程序中有几个长页面需要验证表单和表格 然而 由于实用和美观的原因 我们需要在页面
  • 为什么 stripe Checkout 中没有帐单地址

    我正在使用 Stripe Checkout 进行信用卡收费 但我在弹出窗口中没有看到帐单地址 为什么他们不需要帐单地址 为什么 当我准备使用信用卡付款时 我访问的任何其他网站都会要求提供帐单地址 Stripe Checkout 中已弃用帐单
  • 以字符串形式访问对象属性并设置其值

    我有一个实例Account班级 每个帐户对象都有一个所有者 引用等 我访问帐户属性的一种方法是通过访问器 例如 account Reference 但我希望能够使用动态字符串选择器访问它 例如 account PropertyName 就像
  • 读取某些元素名称中包含“-”的 XML 提要

    我正在尝试读取元素名称中包含 的 xml feed 可以在此处找到源 我是 php 新手 所以我可能会忽略一些基本的东西 我正在使用 SimpleXML 来读取提要 这是我用来解决我的问题的一些基本代码 我阅读了预测和最低温度 没有任何问题
  • 基于 DateTime 创建自定义 GroupDescription

    我正在对一些数据进行分组 PropertyGroupDescription 在大多数情况下都工作正常 但是 如果该属性是 DateTime 并且我不想将多个日期分组为一组 例如每组 30 天或其他 我将需要一个新的 GroupDescrip
  • 字节码操作模式

    字节码操作有哪些合法用途以及人们如何在实践中实现这些基于字节码操作的解决方案 Update 我应该更清楚地表明 这个问题实际上是关于人们使用什么模式和技术在字节码操作的帮助下使他们的代码飞起来 像已经提到的面向方面的编程或动态构建代理对象和
  • 如何使用 Python 从出站 Twilio 呼叫中检索信息?

    我是 Twilio 的新手 正在尝试弄清楚如何从我使用 Python 3 成功拨打的出站呼叫中检索数据 我希望能够检索诸如收件人按下的按钮之类的信息 在阅读了一点 Twilio 文档 然后有点迷失 后 我想我了解了 Twilio 的工作原理
  • @Viewchild看不到matSort

    在我的 Angular 应用程序中 我的 ViewChild 实例无法填充 HTL matSort 我的组件 ts import MatSort from angular material export class MyClassCompo
  • 卤素键盘输入示例和取消订阅事件?

    如何取消订阅除 HandleKey 之外的其他操作的键盘事件键盘输入示例 https github com slamdata purescript halogen blob master examples keyboard input sr
  • 缓冲区溢出 - 普通用户中的 SegFaults

    下面是我的代码 包括易受攻击的程序 stack c 和我的漏洞利用程序 exploit c 这段代码适用于教授为 Windows 用户发送的预打包 Ubuntu 9 我有一个朋友在他的计算机上测试了它 但在我在 iMac 上运行的 Ubun
  • 如何从 Android 设备访问本地 REST api?

    我的计算机上本地运行着一个 spring REST api 我想使用这个 api 进行 android 开发 这是我的获取请求 public static String sendGet final String url StringBuil