RxJava + httpURLConnectionde 的简单测试demo,可以拿来处理一般的android访问网络的线程问题
来源:互联网 发布:tcl网络电视如何看直播 编辑:程序博客网 时间:2024/05/23 01:25
//主要代码
Observable.create(new Observable.OnSubscribe<String>() {
@Overridepublic void call(Subscriber<? super String> subscriber) {
String bitmap =HttpUtil.sendHttpRequest("","http://192.168.8.161:1111/api/Test/GetMatList7");
try{ Thread.sleep(3000);}catch(Exception e){}
subscriber.onNext(bitmap);
subscriber.onCompleted();
Log.e(" call ---> ", "运行在 " + Thread.currentThread().getName() + " 线程");
}
}).subscribeOn(Schedulers.newThread()) // 指定subscribe()发生在IO线程
.observeOn(AndroidSchedulers.mainThread()) // 指定Subscriber的回调发生在UI线程
.subscribe(new Subscriber<String>() {
@Override
public void onStart() {
super.onStart();
p.show();
}
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
p.dismiss();
Log.e(" call ---> ", "运行在 " + Thread.currentThread().getName() + " 线程");
// System.out.println(s);
Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();
}
});
//util中的方法的写法
public static String sendHttpRequest(final String str,final String address){
//通过 HttpURLConnection连接服务器第一个参数为传入的参数,第二个位url地址
HttpURLConnection conn=null;
try{
URL url = new URL(address);
conn=(HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(8000);
conn.setReadTimeout(8000);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(str);
out.flush();
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = new StringBuilder();
String line;
while((line=reader.readLine())!=null){
response.append(line);
}
System.out.println(response.toString());
return response.toString();
}catch (Exception e){
System.out.println("异常是:"+e.getMessage());
e.getMessage();
}finally {
if(conn!=null){
conn.disconnect();
}
}
return "仆街啦";
}
- RxJava + httpURLConnectionde 的简单测试demo,可以拿来处理一般的android访问网络的线程问题
- RXjava的简单介绍 请求网络的Demo menglong0329
- 使用MVP+Retrofit+RxJava实现的的Android Demo (下)使用Retrofit+RxJava处理网络请求
- okgo+rxjava简单的demo
- Rxjava的线程问题
- Android使用RxJava+Retrofit请求网络的小Demo
- 这是用RxJava实现的一个简单demo
- Kotlin+RxJava+Retrofit2的简单Demo
- 一个简单的Android图片处理Demo
- 最简单易懂拿来就可以用的Javascript知识
- 一个基于线程池的网络处理服务器demo
- Rxjava与retrofit的网络访问使用
- android线程访问网络AsyncTask的用法
- android中线程的开启,访问网络
- android rxjava的简单使用
- 线程池的简单Demo
- 一个简单的线程demo
- 多线程资源访问的一般处理思路
- Uiautomator的基础对象
- Android图片加载库的封装实战
- 数据结构实验之链表一:顺序建立链表
- HDU 2196 Computer 树形dp
- JAVA 异常
- RxJava + httpURLConnectionde 的简单测试demo,可以拿来处理一般的android访问网络的线程问题
- 微信支付
- 使用Angular4+kendo ui for Angular+ webapi+sqlserver创建一个简单的省市选择程序(二)
- void及void指针类型整理
- 内联函数、普通函数、宏定义
- Grade重复依赖解决方案-compileOnly
- Java导出2003、2007版Excel
- 数据结构与算法之三(栈和队列的java实现)
- Speeding-up algorithms with SSE