[英]Retrofit2: Modifying request body (Json) in OkHttp
我想在Android中使用JSON修改BODY的請求,但同時修改HEADER,從而能夠獲得響應服務。 現在我只有修改標題的代碼,但是現在我必須執行相同的操作(修改標題)並將Json發送到正文以獲得另一個Json答案
public String abc="Basic "+Login.enco;
public Service getClientService() {
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", abc)
.build();
return chain.proceed(newRequest);
}
}).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.ROOT_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit.create(Service.class);
}
enter code here
try {
final List<String> lista = new ArrayList();
RestApiAdapter restApiAdapter = new RestApiAdapter();
Service service = restApiAdapter.getClientService();
Call<JsonObject> call = service.getDataUser();
call.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
JsonObject userJson = response.body().getAsJsonObject("LogOnResult");
Log.d("response2", userJson.get("Usuario").getAsString());
Log.d("response3", userJson.get("Token").getAsString());
Log.d("response4", userJson.get("TipoUser").getAsString());
Log.d("response5", userJson.get("IdUsuario").getAsString());
UserModel user = new UserModel(
userJson.get("Usuario").getAsString(),
userJson.get("Token").getAsString(),
userJson.get("TipoUser").getAsString(),
userJson.get("IdUsuario").getAsString()
);
}
@Override
public void onFailure(Call<JsonObject> call, Throwable t) {
Toast.makeText(getApplicationContext(), "No existe conexion", Toast.LENGTH_LONG).show();
}
});
}catch (Throwable e){
Toast.makeText(getApplicationContext(), "No existe conexion", Toast.LENGTH_LONG).show();
}
}
在Retrofit2中,您可以通過方法參數傳遞標頭,查詢,主體參數。 您只需要指定注釋即可。 下面是一個例子。
Java示例:
@POST("adduser")
Call<User> addUser(@Header("Authorization") String header, @Body User userModel);
檢查此鏈接以獲取更多示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.