android.os.NetworkOnMainThreadException异常

	new Thread(new Runnable() {

				@Override
				public void run() {
					// TODO Auto-generated method stub
					httptest();
				}
			}).run();
private Handler handler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
				super.handleMessage(msg);
				tvHello.setText((CharSequence) msg.obj);
			}
<pre class="java" name="code">private void httptest() {

	String url = "http://www.baidu.com";
			URL obj;
			try {
				obj = new URL(url);

				HttpURLConnection con;
				try {
					con = (HttpURLConnection) obj.openConnection();

					// optional default is GET
					con.setRequestMethod("GET");

					// add request header
					// con.setRequestProperty("User-Agent", USER_AGENT);
					con.connect();

					int responseCode = con.getResponseCode();
					System.out.println("\nSending 'GET' request to URL : "
							+ url);
					System.out.println("Response Code : " + responseCode);

					BufferedReader in = new BufferedReader(
							new InputStreamReader(con.getInputStream()));
					String inputLine;
					StringBuffer response = new StringBuffer();

					while ((inputLine = in.readLine()) != null) {
						response.append(inputLine);
					}
					in.close();

					// print result
					System.out.println(response.toString());
					Message msg = handler.obtainMessage();
					msg.obj = response.toString();
					handler.sendMessage(msg);

				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			} catch (MalformedURLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}

		}

 
 


已经将http请求封装在worker thread,但是不小心将thread的启动写成了run。

改成start 即OK。

你可能感兴趣的:(android.os.NetworkOnMainThreadException异常)