1: 先看依赖部分
// rx
implementation 'io.reactivex.rxjava2:rxjava:2.0.7'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
// retrofit
implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
// okhttp
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'
2: api注解部分
@PUT("api/sn/devices/{id}")
Observable<ResponseBody> resetCode(@Path("id")String id, @Body RequestBody json);
3: java 部分 初始化
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
//打印retrofit日志
Log.d(TAG, "log: ------------message:" + message);
}
});
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()//okhttp设置部分,此处还可再设置网络参数
.addInterceptor(loggingInterceptor)
.build();
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(url)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
mRetrofit = builder.build();
mApi = mRetrofit.create(ApiService.class);
4: 请求部分
Map<String, String> map = new HashMap<>();
map.put("client_id", "44E7F9DC2DE558BFBC5D808E38267589");
map.put("access_token", "2bc22808ed4f305235177aec694dfc040c45cfb6");
String json = JSON.toJSONString(map);
Log.i(TAG, "onClick: ---------jsn:" + json);
try {
RequestBody body=RequestBody.create(okhttp3.MediaType.parse("application/json;charset=UTF-8"),json);
mApi.resetCode("STRCS00118A0200004", body)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
Log.i(TAG, "onSubscribe: --------");
}
@Override
public void onNext(ResponseBody responseBody) {
try {
Log.i(TAG, "onNext: ------------1" + JSON.toJSONString(responseBody) + "--2" + responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
Log.i(TAG, "onError: -----------");
}
@Override
public void onComplete() {
Log.i(TAG, "onComplete: -----------");
}
});
break;
} catch (Exception e) {
e.printStackTrace();
}