Wiele razy widziałem te pytania i próbowałem wielu rozwiązań, ale bez rozwiązania mojego problemu, próbuję wysłać jsona w żądaniu POST za pomocą modernizacji, nie jestem ekspertem w programowanie, więc mogę pominąć coś oczywistego.Wysyłanie JSON na żądanie POST z modernizacją
Moje JSON jest w ciągu znaków i wygląda na to, że:
{"id":1,"nom":"Hydrogène","slug":"hydrogene"}
mojego interfejsu (tzw APIService.java) wygląda tak:
@POST("{TableName}/{ID}/update/0.0")
Call<String> cl_updateData(@Path("TableName") String TableName, @Path("ID") String ID);
A moja ClientServiceGenerator.java wygląda tak:
public class ClientServiceGenerator{
private static OkHttpClient httpClient = new OkHttpClient();
public static <S> S createService(Class<S> serviceClass, String URL) {
Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.client(httpClient).build();
return retrofit.create(serviceClass);
}}
I wreszcie oto kod w mojej działalności
APIService client = ClientServiceGenerator.createService(APIService.class, "http://mysiteexample.com/api.php/");
Call<String> call = client.cl_updateData("atomes", "1");
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Response<String> response, Retrofit retrofit) {
if (response.code() == 200 && response.body() != null){
Log.e("sd", "OK");
}else{
Log.e("Err", response.message()+" : "+response.raw().toString());
}
}
@Override
public void onFailure(Throwable t) {
AlertDialog alertError = QuickToolsBox.simpleAlert(EditDataActivity.this, "updateFail", t.getMessage(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertError.show();
}
});
Powiadom mnie, jeśli potrzebujesz czegoś innego, nadzieję, że ktoś może mi pomóc.
EDIT Nie wspominając już za pierwszym razem, ale mój JSON nie zawsze będą tymi samymi klawiszami (id, nom, ślimakom).
Widziałem ten post, ale wydaje się, że niektóre smary zostały usunięte i wszystko próbowałem zawiodły więc przychodzę tutaj, aby znaleźć inne rozwiązanie . – Teasel