我的计算机上本地运行着一个 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):
让我告诉你一个更简单的方法来做到这一点。如果您使用的是 Android 模拟器,则可以使用 10.0.2.2 作为 IP 地址来连接到可使用 REST API 的主机。
同样,如果您使用的 Genymotion 使用 Oracle Virtualbox,则可以使用 10.0.3.2。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)