我有一個在我的電腦上本地運行的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