gpt4 book ai didi

java - 如何从我的 Android 设备访问本地 REST API?

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:39 25 4
gpt4 key购买 nike

我有一个在我的计算机上本地运行的 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 发出请求时,没有建立连接。

我的 list 包括:

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

旁注:

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

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

编辑以包括从我的笔记本电脑上运行的本地 REST api 输出的 chrome 浏览器(在 android 设备上)(返回默认 guest 用户信息的 GET 请求): enter image description here

最佳答案

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

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

关于java - 如何从我的 Android 设备访问本地 REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196020/

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