本文共 1655 字,大约阅读时间需要 5 分钟。
阅读前请注意:本文只是调试,没对结果进行处理
webservice可以理解为一种post请求,只是返回的不是json
使用方法跟发送post一样,只是需要修改content-type
除了常规的包还需要的包
retrofit+rxjava常规使用包包含什么?
这里使用的是retrofit2.0+rxjava的方法,如何使用见上面的传送门
compile'com.squareup.retrofit2:converter-scalars:2.2.0'
@Headers({"Content-Type:text/xml; charset=utf-8"}) @POST("接口地址中除了域名和?以及?后面的,跟普通的post一样") ObservablequeryInfo(@Body String s);//如果需要设置soapaction,在content-type后面追加,如@Headers({"Content-Type:text/xml; charset=utf-8", "SOAPAction:soapaction"})
调用
xml是什么样子的?见
String xmlData=""Retrofit retrofit = new Retrofit.Builder().baseUrl(url) .addConverterFactory(ScalarsConverterFactory.create())//注意,这里是导入的新包使用,为了传输过程中不乱码 .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); RetrofitInterface_XLKX httpApiS = retrofit.create(RetrofitInterface_XLKX.class); httpApiS.queryInfo(soap11).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override public void onNext(@NonNull String loginBean) { //结果 回调 Log.e("测试soap", "'=="+loginBean); } @Override public void onError(@NonNull Throwable e) { Log.e("测试soap错误", ""+e.getMessage() ); } @Override public void onComplete() { } }); }
转载地址:http://jxeci.baihongyu.com/