У меня проблема с отправкой изображения и идентификатора категории, остальные параметры в порядке. Я сгенерировал URL с помощью метода call.request.call (), все параметры отображаются, но есть проблема с этими двумя параметрами.
JSONObject object = new JSONObject();
Map<String, Object> imageid = new HashMap<>();
imageid.put("AddressID", 58);
imageid.put("ImageBytes", "ifhsfusdvdsfgvfdvhfhsdlkcfgvhgvhfghd");
try {
object.put("name", imageid);
} catch (JSONException e) {
Log.d("object binding", e.getMessage());
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Call<String> call = retrofit.create(Api.class).addProduct(
1,
"product name test",
1000,
5000,
"description test",
"test 0012",
1000,
imageid
);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Log.d("add product", "" + response.body());
Log.d("api is", "" + call.request().url());
Toast.makeText(getApplicationContext(), "done api on add product", LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.d("productavv", "" + call.request().url());
Toast.makeText(getApplicationContext(), "fail on add product", LENGTH_SHORT).show();
}
});
// Класс интерфейса API:
@POST("AddProduct")
Call<String> addProduct(@Query("OwnerId") int id,
@Query("ProductName") String product_name,
@Query("DefaultRent") int default_rent,
@Query("DepositRequired") int deposit_required,
@Query("Description") String description,
@Query("CategoryName") String catagory_name,
@Query("UserImageID") int image_Id,
@Body Map<String, Object> params
);
[Здесь Json Формат API] [1]
[1]: https://i.stack.imgur.com/NFE49.jpg