我在使用 HttpUrlConnection 类时遇到了 Android 问题,我的方法是这样的:
public InputStream test() {
URL url = null;
try {
url = new URL("http://www.android.com/");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) url.openConnection();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InputStream in= null;
try {
in = new BufferedInputStream(urlConnection.getInputStream());
}catch(IOException e){
e.printStackTrace();
}
finally {
urlConnection.disconnect();
}
return in;
}
当我执行此方法时,android会生成此异常:
05-03 15:15:19.116: W/System.err(1085): android.os.NetworkOnMainThreadException 05-03 15:15:19.116: W/System.err(1085): 在 android.os.StrictMode$AndroidBlockGuardPolicy。 onNetwork(StrictMode.java:1099) 05-03 15:15:19.116: W/System.err(1085): 在 java.net.InetAddress.lookupHostByName(InetAddress.java:391) 05-03 15:15:19.116: W/System.err(1085): 在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:242) 05-03 15:15:19.116: W/System.err(1085): 在 java.net.InetAddress.getAllByName (InetAddress.java:220) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http.HttpConnection.(HttpConnection.java:71) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http.HttpConnection.(HttpConnection.java:50) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http。 HttpConnection$Address.connect(HttpConnection.java:351) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86) 05-03 15:15:19.126: W/System。错误(1085):在 libcore.net.http.HttpConnection.connect(HttpConnection.java:128)05-03 15:15:19.126:W/System.err(1085):在 libcore.net.http.HttpEngine.openSocketConnection (HttpEngine.java:308) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http.HttpEngine.connect(HttpEngine.java:303) 05-03 15:15:19.126 : W/System.err(1085): 在 libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net。 http.HttpEngine.sendRequest(HttpEngine.java:232) 05-03 15:15:19.126: W/System.err(1085): 在 libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273) 05-03 15:15:19.136:W/System.err(1085):在 libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 05-03 15:15:19.136: W/System.err(1085): 在 com.BertacchiMazzoni.HTTPClient.HttpClientTutorial.test(HttpClientTutorial.java: 35) 05-03 15:15:19.136: W/System.err(1085): 在 com.BertacchiMazzoni.HTTPClient.HTTPClientActivity.onCreate(HTTPClientActivity.java:18) 05-03 15:15:19.136: W/System。错误(1085):在 android.app.Activity.performCreate(Activity.java:4465)05-03 15:15:19.136:W/System.err(1085):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1049) 05-03 15:15:19.136: W/System.err(1085): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-03 15:15:19.136: W/System.err (1085): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 05-03 15:15:19。136: W/System.err(1085): 在 android.app.ActivityThread.access$600(ActivityThread.java:123) 05-03 15:15:19.136: W/System.err(1085): 在 android.app。 ActivityThread$H.handleMessage(ActivityThread.java:1147) 05-03 15:15:19.146: W/System.err(1085): 在 android.os.Handler.dispatchMessage(Handler.java:99) 05-03 15: 15:19.146: W/System.err(1085): 在 android.os.Looper.loop(Looper.java:137) 05-03 15:15:19.146: W/System.err(1085): 在 android.app .ActivityThread.main(ActivityThread.java:4424) 05-03 15:15:19.146: W/System.err(1085): 在 java.lang.reflect.Method.invokeNative(Native Method) 05-03 15:15: 19.146: W/System.err(1085): 在 java.lang.reflect.Method.invoke(Method.java:511) 05-03 15:15:19.146: W/System.err(1085): 在 com.android .internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-03 15:15:19.146:W/System.err(1085): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-03 15:15:19.146: W/System.err(1085): 在 dalvik.system .NativeStart.main(本机方法)
我可以解决这个问题吗?错误在哪里?
非常感谢!问候!