需要自定义一个converti
public class StringConverterFactory extends Converter.Factory {
public static StringConverterFactory create() {
return new StringConverterFactory();
}
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
Retrofit retrofit) {
return new ConfigurationServiceConverter();
}
final class ConfigurationServiceConverter implements Converter<ResponseBody, String> {
@Override
public String convert(ResponseBody value) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(value.byteStream()));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line);
}
return total.toString();
}
}
}
使用方法:
/*获取宿舍名单2*/
@POST("/call.aspx?forward=16-1609&caller=M")
@FormUrlEncoded
Observable<String>getUsers2(@FieldMap Map<String, String> params);
/*获取列表*/
private void getUserSByAX2() {
Map<String, String> map = new HashMap<>();
map.put("ROOM_ID", "1");;
Retrofit retrofit = new Retrofit.Builder().baseUrl(BaseUrl.BaseUrl)
// .addConverterFactory(GsonConverterFactory.create())
.addConverterFactory(StringConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
HttpApiS httpApiS = retrofit.create(HttpApiS.class);
httpApiS.getUsers2(map).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull String loginBean) {
Log.e("列表信息",loginBean);
// if (loginBean.getReturnCode().equals("1")) {
// Log.e("登陆成功", "登录cheongsam77"+"长度"+loginBean.getReturnRoomUserList().size());
// for(BeanUser2 beanUser2:loginBean.getReturnRoomUserList()){
// Log.e("学生名字",beanUser2.getUSER_NAME()+"=");
// }
//
// } else {
// Log.e("登录失败", "登录失败===");
// }
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("登录错误", e.getMessage() + "'");
}
@Override
public void onComplete() {
}
});
}