简单的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();