Я просто пытаюсь обработать ответ от службы покоя моего сайта, но всякий раз, когда я выполняю "httpResponse = httpclient .execute (httpget);" Возникла исключительная ситуация, и я не вижу, что с ней не так, поскольку это спокойный сервис. Кто-нибудь знает, в чем проблема со следующим кодом? заранее большое спасибо.
package com.android.hummedia;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.R.string;
import android.app.Activity;
import android.content.Entity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class searchResultList extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
int responseCode;
String message;
String query = "http://hummedia.byu.edu/mediainfo/search/?title=Harry";
Button testButton = (Button) findViewById(R.id.test);
testButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(searchResultList.this, HummediaActivity.class);
startActivity(intent);
}
});
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(query);
HttpResponse httpResponse;
try {
httpResponse = httpclient .execute(httpget);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void onResume() {
super.onResume();
}
}
Вот трассировка стека, найденная в logCat, спасибо:
11-08 10:30:02.944: W/System.err(646): android.os.NetworkOnMainThreadException
11-08 10:30:02.964: W/System.err(646): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
11-08 10:30:02.974: W/System.err(646): at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
11-08 10:30:02.984: W/System.err(646): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
11-08 10:30:03.004: W/System.err(646): at java.net.InetAddress.getAllByName(InetAddress.java:220)
11-08 10:30:03.014: W/System.err(646): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
11-08 10:30:03.024: W/System.err(646): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-08 10:30:03.045: W/System.err(646): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11-08 10:30:03.054: W/System.err(646): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
11-08 10:30:03.064: W/System.err(646): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-08 10:30:03.074: W/System.err(646): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-08 10:30:03.084: W/System.err(646): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-08 10:30:03.104: W/System.err(646): at com.android.hummedia.searchResultList.onCreate(searchResultList.java:70)
11-08 10:30:03.114: W/System.err(646): at android.app.Activity.performCreate(Activity.java:4465)
11-08 10:30:03.174: W/System.err(646): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-08 10:30:03.184: W/System.err(646): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
11-08 10:30:03.194: W/System.err(646): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
11-08 10:30:03.215: W/System.err(646): at android.app.ActivityThread.access$600(ActivityThread.java:122)
11-08 10:30:03.224: W/System.err(646): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
11-08 10:30:03.234: W/System.err(646): at android.os.Handler.dispatchMessage(Handler.java:99)
11-08 10:30:03.244: W/System.err(646): at android.os.Looper.loop(Looper.java:137)
11-08 10:30:03.254: W/System.err(646): at android.app.ActivityThread.main(ActivityThread.java:4340)
11-08 10:30:03.264: W/System.err(646): at java.lang.reflect.Method.invokeNative(Native Method)
11-08 10:30:03.274: W/System.err(646): at java.lang.reflect.Method.invoke(Method.java:511)
11-08 10:30:03.284: W/System.err(646): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-08 10:30:03.294: W/System.err(646): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-08 10:30:03.306: W/System.err(646): at dalvik.system.NativeStart.main(Native Method)