Я хочу создать приложение для Android для своего веб-сайта WordPress с помощью плагина wp-api. как я могу отправить HttpRequest (GET) и получить ответ в Json?
как отправить HttpRequest и получить ответ Json в Android?
comment
developer.android.com/training/volley/index.html
- person Itzik Samara   schedule 09.01.2016
comment
вы можете использовать этот stackoverflow.com/a/8655039
- person user1140237   schedule 09.01.2016
Ответы (2)
Попробуйте ниже код, чтобы получить json из URL-адреса
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget= new HttpGet(URL);
HttpResponse response = httpclient.execute(httpget);
if(response.getStatusLine().getStatusCode()==200){
String server_response = EntityUtils.toString(response.getEntity());
Log.i("Server response", server_response );
} else {
Log.i("Server response", "Failed to get server response" );
}
person
Ijas Ahamed N
schedule
09.01.2016
Где найти HttpClient? Какой пакет я должен включить?
- person Tarion; 07.03.2017
@Tarion просто добавьте
useLibrary 'org.apache.http.legacy'
в файл build.gradle на уровне приложения в блоке android
над defaultConfig
.
- person Mohammedsalim Shivani; 27.05.2017
это устаревший метод. Студия Android предупредит вас об этом. Рассмотрите возможность использования залпа для сетевых запросов. см. developer.android.com/training/volley/simple
- person kPieczonka; 14.01.2019
Используйте эту функцию, чтобы получить JSON из URL.
public static JSONObject getJSONObjectFromURL(String urlString) throws IOException, JSONException {
HttpURLConnection urlConnection = null;
URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(10000 /* milliseconds */ );
urlConnection.setConnectTimeout(15000 /* milliseconds */ );
urlConnection.setDoOutput(true);
urlConnection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
String jsonString = sb.toString();
System.out.println("JSON: " + jsonString);
return new JSONObject(jsonString);
}
Не забудьте добавить интернет-разрешение в свой манифест
<uses-permission android:name="android.permission.INTERNET" />
Затем используйте его следующим образом:
try{
JSONObject jsonObject = getJSONObjectFromURL(urlString);
//
// Parse your json here
//
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
person
Asad Haider
schedule
09.01.2016
Хорошее решение, не требует импорта http-клиента apache!
- person RestingRobot; 20.04.2017
Здесь как минимум две серьезные ошибки. 1.
urlConnection.setDoOutput(true);
изменяет запрос на POST
метод. 2. Эффективно выполняет два запроса, new InputStreamReader(url.openStream()
снова открывает url
, игнорируя urlConnection
и все его свойства. 3. sb.append(line + "\n")
создает избыток String
.
- person Victor Sergienko; 11.09.2017