当前位置: 代码迷 >> Android >> 简单的http get调用4.0出错,
  详细解决方案

简单的http get调用4.0出错,

热度:43   发布时间:2016-05-01 13:28:14.0
简单的http get调用4.0出错,求助!!!
简单的http get调用4.0出错,求助!!!


加了网络限权的。



package com.example.aaaaa;

import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
   
try {
//new ShopLogin(userName.getText().toString(), passWord.getText().toString()).Login();

HttpGet httpGet = new HttpGet("http://www.baidu.com");
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
defaultHttpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
HttpResponse httpResponse = defaultHttpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
byte[] bResultJson = EntityUtils.toByteArray(httpResponse.getEntity());
String resultJson = new String(bResultJson, "UTF-8");
if (!"".equals(resultJson) && resultJson != null) {

Log.i("aaa", resultJson);
}
}


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


}


LOG






------解决方案--------------------
andoid 3.0以上 强制策略限制了 你可以另外开个线程执行http操作 
或者在oncreate()函数中加入这两句代码去除策略限制也可以解决你的问题


StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
------解决方案--------------------
你的设备或者模拟器能上网么?
------解决方案--------------------
不能在主线程中访问网络
Java code
new Thread(){    @Override    public void run()    {     //你那段try开始的代码放这里    }}.start();
  相关解决方案