rest service を使用している Android アプリケーションがあります。post/get リクエストを rest service に送信すると、rest サーバーで操作が完了し、サーバー応答 200 ok が返されます。しかし、応答本文を取得しようとすると、次のエラーが発生します。
" Android An exception occurred: java.lang.IllegalStateException "
私のコードブロックを以下に示します
HttpEntity ResponseEntity = resp.getEntity();
if(ResponseEntity!=null){
String responseBody = EntityUtils.toString(ResponseEntity); // Error Occurs here
}
http request を作成している私のクラス。
package httpOperations;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.StringEntity;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.util.Base64;
import android.util.Log;
import com.google.gson.Gson;
public class HttpGetRequest extends baseHttpRequest {
HttpGet httpGet = null;
public HttpGetRequest(String methodName, String prms) {
super((methodName));
String base64EncodedCredentials = "Basic "
+ Base64.encodeToString(("ilhan" + ":" + "123").getBytes(),
Base64.NO_WRAP);
String URL = GetServiceURL();
httpGet = new HttpGet(URL);
httpGet.setHeader("Authorization", base64EncodedCredentials);
httpGet.setHeader(HTTP.CONTENT_TYPE, "application/json");
httpGet.setHeader("accept", "application/json");
Gson gson = new Gson();
StringEntity se = null;
}
@Override
public HttpResponse SendRequest() {
HttpResponse resp = null;
try {
resp = GetHttpClient().execute(httpGet);
final int statusCode = resp.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(getClass().getSimpleName(), "Error " + statusCode
+ " for URL " + GetServiceURL());
}
HttpEntity ResponseEntity = resp.getEntity();
if (ResponseEntity != null) {
String responseBody = EntityUtils.toString(ResponseEntity);
}
// ResponseEntity.getContent();
}
catch (IOException e) {
httpGet.abort();
Log.w(getClass().getSimpleName(), "Error for URL "
+ GetServiceURL(), e);
}
return resp;
}
}
私は asynctask やその他の非同期操作を使用していません。これは理由になりますか?
ありがとう。