RxJava实战演示3----okhttp3表单提交
来源:互联网 发布:爬虫数据分析 编辑:程序博客网 时间:2024/06/05 03:59
1.定义LoginUtils
public class LoginUtils { private OkHttpClient client; public LoginUtils() { client = new OkHttpClient(); } /** * 定义了login操作,使用RxAndroid的编程思想 * @param url * @param params * @return */ public Observable<String> login(String url,Map<String,String> params){ return Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { if (!subscriber.isUnsubscribed()){ FormBody.Builder builder = new FormBody.Builder(); if (params!=null&&!params.isEmpty()){ for(Map.Entry<String,String> entry:params.entrySet()){ builder.add(entry.getKey(),entry.getValue()); } } RequestBody requestBody = builder.build(); //构建post请求 Request request = new Request.Builder().url(url).post(requestBody).build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { subscriber.onError(e); } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()){ subscriber.onNext(response.body().string()); } subscriber.onCompleted();//访问结束 } }); } } }); }}2.主页面调用
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Map<String, String> params = new HashMap<String, String>(); params.put("username", username.getText().toString().trim()); params.put("password", password.getText().toString().trim()); utils.login(LOGIN, params).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<String>() { @Override public void onCompleted() { // dialog.dismiss(); } @Override public void onError(Throwable e) { Log.i(TAG, e.getMessage()); } @Override public void onNext(String s) { dialog.show(); // Log.i(TAG,s); if (new JSONObject(json).getJSONObject("result").getInt("resultCode")==1){ //Log.i(TAG,"success");页面跳转 } } }); } });
0 0
- RxJava实战演示3----okhttp3表单提交
- RxJava实战演示1------基本代码使用
- RxJava实战演示2,获取网络图片
- Retrofit 2.0,RxJava(Android), OkHttp3.3
- OKHTTP3的简单使用,表单提交,json传递
- 演示获取表单提交的信息
- Rxjava+Retrofit2+Okhttp3
- 初探Okhttp3+Retrofit2+RXJava
- Okhttp3+Rxjava+Retrofit2封装
- RxJava,Retrofit,OkHttp3结合使用
- Retrofit2初尝试(rxjava + okhttp3)
- 使用RxJava+OKhttp3进行图片下载
- 使用RxJava+OKhttp3进行图片下载
- retrofit2+okhttp3+rxjava网络封装
- Retrofit2+OkHttp3+RxJava搭建网络框架
- Retrofit2+OkHttp3+RxJava搭建网络框架
- Android Retrofit2+OkHttp3+RxJava 三联合
- Retrofit2+OkHttp3+RxJava构建网络框架
- 23种设计模式总结
- tomcat源码流程分析(一)
- (十三)Spring框架——基于注解的配置
- FFMPEG合两帧YUV420P为一帧
- http常用状态码说明
- RxJava实战演示3----okhttp3表单提交
- mysql校验字符集
- 【SQL】关于低版本SQL附加高版本数据库(ERROR:948)的解决方法
- bootstrap table实现从后台搜索
- synchronized 的不足之处
- 分布式哈希和一致性哈希
- try、catch、finally里面的return
- java常用对象的内存占用大小
- soap document和rpc产生的wsdl例子