hinzufügen Ich lerne nur Retrofit und OKHttp, jetzt habe ich ein Problem. Jede Anfrage in meiner app ist POST, wie folgt aus:Wie Standardwerte mit Retrofit und OKHttp in jedem Beitrag
@FormUrlEncoded
@POST("some url")
Observable<Result> getData(@Field("id") String id);
In jedem POST gibt es zwei gleiche params. So kann ich auf einfachste Weise zwei weitere @Field in jeder Methode hinzufügen, zum Beispiel @Field ("Token"), @ Field ("Account"). Aber ich denke, dass es einen klugen Weg geben muss.
Dann dachte ich OkHttpClient kann das lösen.
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
RequestBody body = new FormBody.Builder().add("account", "me")
.add("token", "123456").build();
request = request.newBuilder().post(body).build();
return chain.proceed(request);
}
}).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("some base url")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
Oder
HttpUrl url = request.url().newBuilder()
.setEncodedQueryParameter("account", "me")
.setEncodedQueryParameter("token", "123456")
.build();
Die erste Methode ersetzen Sie einfach alle Feld zu diesen beiden.
Die zweite Methode nur diese beiden als GET-Parameter, nicht POST.
Jetzt habe ich absolut keine Ahnung, wie man das funktioniert.