Я пытался вызвать asp.net RESTful API - Webservice с устройства Android, но он пока не работает.Когда я запускаю свой код, он генерирует исключение, но exception.getMessage () ничего не возвращает.
Я только знаю, что это не может быть ни IO-, ни MalformedURLException, поскольку я тестировал код с помощью catchдля обоих соответственно вместо одного улова для исключений в целом, которые приводят к сбою приложения.
Веб-сервер работает нормально, также мне удалось вызвать его из обычного Java-клиента в Eclipse.Я также могу получить к нему доступ со своего устройства, поэтому я пришел бы к выводу, что должно быть какое-то отсутствующее разрешение Android, а не проблема с сервером или java-кодом.
РЕДАКТИРОВАТЬ: Я думаю, что исключение выдается "OutputStream os = conn.getOutputStream ()"
public void postRequest(View view) {
try {
URL url = new URL("http://IP:PORT/api/get");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
String input = "{\"parameter1\":\"abc\",\"parameter2\":\"def\"}";
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
Манифест
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="PPEASE Fotos"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SettingsActivity"
android:parentActivityName=".FullscreenActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".FullscreenActivity" />
</activity>
<activity
android:name=".FullscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Источники: https://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/ https://developer.android.com/reference/java/net/HttpURLConnection.html