public class Http {
public HttpClient httpClient ;
public String getRequest(String url)
throws Exception
{
httpClient= new DefaultHttpClient();
try{
// 创建HttpGet对象。
HttpGet get = new HttpGet(url);
//HttpUriRequest get=new HttpGet(url);
// 发送GET请求
HttpResponse httpResponse = httpClient.execute(get);
// 如果服务器成功地返回响应
if (httpResponse.getStatusLine()
.getStatusCode() == 200)
{
// 获取服务器响应字符串
String result = EntityUtils
.toString(httpResponse.getEntity(),"GBK");
return result;
}
}catch(Exception e){
e.printStackTrace();
return "获取数据失败!";
}finally{
httpClient.getConnectionManager().shutdown();
}
return null;
}
/**
*
* @param url 发送请求的URL
* @param params 请求参数
* @return 服务器响应字符串
* @throws Exception
*/
public String postRequest(String url, Map<String ,String> rawParams)
{
httpClient= new DefaultHttpClient();
try{
// 创建HttpPost对象。
HttpPost post = new HttpPost(url);
// 如果传递参数个数比较多的话可以对传递的参数进行封装
List<NameValuePair> params = new ArrayList<NameValuePair>();
for(String key : rawParams.keySet())
{
//封装请求参数
params.add(new BasicNameValuePair(key , rawParams.get(key)));
}
// 设置请求参数
post.setEntity(new UrlEncodedFormEntity(
params,HTTP.UTF_8));
// 发送POST请求
HttpResponse httpResponse = httpClient.execute(post);
System.out.println("f");
// 如果服务器成功地返回响应
if (httpResponse.getStatusLine()
.getStatusCode() == 200)
{
// 获取服务器响应字符串
String result = EntityUtils
.toString(httpResponse.getEntity(),"UTF-8");
return result;
}
}catch(Exception e){
e.printStackTrace();
}finally{
httpClient.getConnectionManager().shutdown();
}
return null;
}
}
http请求的 在android2.3一下都没问题 可以获取到网络信息 倒是在4.0上就获取不到
大神们看看是怎么回事
public HttpClient httpClient ;
public String getRequest(String url)
throws Exception
{
httpClient= new DefaultHttpClient();
try{
// 创建HttpGet对象。
HttpGet get = new HttpGet(url);
//HttpUriRequest get=new HttpGet(url);
// 发送GET请求
HttpResponse httpResponse = httpClient.execute(get);
// 如果服务器成功地返回响应
if (httpResponse.getStatusLine()
.getStatusCode() == 200)
{
// 获取服务器响应字符串
String result = EntityUtils
.toString(httpResponse.getEntity(),"GBK");
return result;
}
}catch(Exception e){
e.printStackTrace();
return "获取数据失败!";
}finally{
httpClient.getConnectionManager().shutdown();
}
return null;
}
/**
*
* @param url 发送请求的URL
* @param params 请求参数
* @return 服务器响应字符串
* @throws Exception
*/
public String postRequest(String url, Map<String ,String> rawParams)
{
httpClient= new DefaultHttpClient();
try{
// 创建HttpPost对象。
HttpPost post = new HttpPost(url);
// 如果传递参数个数比较多的话可以对传递的参数进行封装
List<NameValuePair> params = new ArrayList<NameValuePair>();
for(String key : rawParams.keySet())
{
//封装请求参数
params.add(new BasicNameValuePair(key , rawParams.get(key)));
}
// 设置请求参数
post.setEntity(new UrlEncodedFormEntity(
params,HTTP.UTF_8));
// 发送POST请求
HttpResponse httpResponse = httpClient.execute(post);
System.out.println("f");
// 如果服务器成功地返回响应
if (httpResponse.getStatusLine()
.getStatusCode() == 200)
{
// 获取服务器响应字符串
String result = EntityUtils
.toString(httpResponse.getEntity(),"UTF-8");
return result;
}
}catch(Exception e){
e.printStackTrace();
}finally{
httpClient.getConnectionManager().shutdown();
}
return null;
}
}
http请求的 在android2.3一下都没问题 可以获取到网络信息 倒是在4.0上就获取不到
大神们看看是怎么回事
解决方案 »
- [在线等]android中获取当前位置引发的null问题
- android的3D切换画面实现的代码
- 求解,怎么在Spinner中选一个章节,跳转到对应的视频界面。
- 新手求救啊。刚开发一个Activity,一直运行不了
- 求助!Bitmap转换为byte[]存入数据库后再读出来不一样了
- sd卡上有apiDemos.apk, 如何装到开发板上
- 如何发起一个事件让屏幕锁屏!
- 为什么会出现unfortunately has stopped
- 应用退出后,应用后台服务还开着。如何关闭?
- 提示error: Error parsing XML: unbound prefix 我搞不懂的是为什么上面一处就不报错呢
- Android游戏开发,如何让游戏适配所有的分辨率?
- WIFI热点,通过IP获取主机名?
必须将HTTP请求放到线程中也可以在Activity的OnCreate中去掉StrictMode
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
但最好是用线程,asyncTask也挺简单的具体看看这吧,http://www.bcoder.com/?p=37