Я разрабатываю приложение для Android, в котором я использую структуру Zend для создания API. Я вызываю API, используя этот код. Это код в классе IntentService.
HttpClient client = new DefaultHttpClient();
// Set timeout values
client.getParams().setIntParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT,
CONNECTION_TIMEOUT * 1000);
client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT,
SOCKET_TIMEOUT * 1000);try {
HttpUriRequest httpRequest = null;
HttpResponse response = null;
// Set HttpUriRequest based on type of HTTP method
if (method.equals("GET")) {
HttpGet request = new HttpGet(url);
httpRequest = request;
}
// Get response
response = client.execute(httpRequest);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
// Read the response
String responseString = readResponseContent(rd);
Log.e(TAG, "length of response is " + responseString.length());
Log.e(TAG, "response :" + responseString);
// If status code 200 then send response
}catch (Exception e) {
MyLog.e(TAG, "Exception while connecting to URL : " + url);
e.printStackTrace();
sendUnknownError();
}
Теперь проблема в том, что я создал один API, ответ которого очень длинный. Но после получения этого я отправляю трансляцию туда, где она называется. Он возвращает ответ частями. Поэтому, когда он получает ответ в первый раз, но на самом деле ответ еще не завершен. Так что это вызывает некоторые проблемы позже. Итак, как я могу дождаться полного ответа перед вызовом широковещательного метода.
Поэтому мне нужно дождаться полного ответа. Как я могу это сделать?