我有一个在我的电脑上本地运行的spring REST api。我想为Android开发使用这个api。如何从我的android设备访问本地REST api?
这里是我的GET请求:
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的REST API。 我正在使用通过调用ipconfig找到的WLAN IPv4地址。
任何提示在正确的方向将非常感谢 - 谢谢!
编辑,包括Chrome浏览器(Android设备上)输出从本地REST API在我的笔记本电脑(GET请求返回默认的guest用户信息)运行:
您可以从** android浏览器**访问'localhost:8080'?可能不会。 'localhost'在所有设备上表示不同的东西。 –
尝试连接到您的设备通过本地检查[这](http://stackoverflow.com/questions/4779963/how-can-i-access-my-localhost-from-my-android-device),访问您的文件和解析它 – Mohit
@ cricket_007:我可以从我的android浏览器访问我的WLAN IPv4地址+ URI。我有一个API如下: – Dayna