今天在安卓上写了一个调用服务器接口的小demo,然后发现多连接几次服务器程序就闪退,想了半天也不知道原因,后来把静态化的httpclient变成每一次请求都初始化一次,就再也没有问题了,这是正常了以后的代码
public Poem getOnePoem() {
try {
String baseUrl = "http://ip地址:8080/PoemServer/Poem/";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet(baseUrl+"getOneRandomPoem");
HttpResponse response= httpClient.execute(get);
HttpEntity entity = response.getEntity();
Map<String, String> maps = gson.fromJson(EntityUtils.toString(entity), new TypeToken<Map<String, String>>(){}.getType());
if(maps.get("code").equals("200")){
Poem poem = gson.fromJson(maps.get("data"), Poem.class);//new TypeToken<Poem>() {}.getType());
return poem;
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
之前是在类中写了
static DefaultHttpClient httpClient = new DefaultHttpClient();
static HttpGet get = new HttpGet(baseUrl+"getOneRandomPoem");
static HttpResponse response= httpClient.execute(get);
static HttpEntity entity = response.getEntity();
然后总是连接几次就闪退,原因是因为在安卓中,进行网络请求要放在线程中,请求太快静态变量不是线程安全的,所以最好将方法加一个线程锁或者是每次请求初始化一次。
分享到:
相关推荐
Android的HttpClient开发实例。欢迎下载学习
Android使用HttpClient发送请求、接收响应很简单,只要如下几步即可: Step1:创建HttpClient对象; Step2:如果需要发送GET请求,则创建HttpGet对象; 如果需要发送POST请求,则创建HttpPost对象; Step3:如果...
Android 使用HttpClient代理
Android 9.0 httpclient导致崩溃,找不到httpclient相关类,将包放入lib下即可
android HttpClient 获取网络图片 实例
NULL 博文链接:https://eagalwood.iteye.com/blog/2323296
自己对HttpClient的简单封装,目前只封装了post方式的请求
Android使用HttpClient实现上传下载功能并监控进度.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
是android的jar中httpclient的源码,是org.apache.http包的源码。其中包含org.apache.http.HttpResponse类。 不是官网上下载的,官网上的源码里面没有org.apache.http.HttpResponse这个类。
Android Asynchronous HTTPClient的实现和优化
Android使用HttpClient上传文件到服务器完整实例,包括要用到的jar都下libs下面,服务器的源码也有
Android使用HttpClient实现上传下载功能并监控进度
Android HttpClient基本使用方法 测试过能用。
Android-异步HttpClient框架,采用两种提交方式 Android-异步HttpClient框架(get和post) Android-异步HttpClient框架 csdn博客地址:http://blog.csdn.net/u014657752
android9.0不再支持useLibrary 'org.apache.http.legacy'引入httpclient,需要引入jar
android应用开发 httpClient所需jar包 和调用webservice 工具ksoap2 jar 包
Android利用HttpClient实现访问web服务器源码 剥离出HttpClient代码,用来做网页爬虫亦可
Android使用HttpClient发送请求、接收响应很简单,只要如下几步即可: Step1:创建HttpClient对象; Step2:如果需要发送GET请求,则创建HttpGet对象; 如果需要发送POST请求,则创建HttpPost对象; Step3:如果...
httpclient-android Build script and dependencies to create repackaged upstream version of HttpClient and depdendencies (HttpMime, HttpCore, HttpClient-Cache) and get it working on Android API version...
Android平台HttpClient的使用-手机号码归属地查询