Salut j'ai un JSON pour envoyer au serveur (POST methord) {"country":"india","devicetype":"android"}
il est sous forme modèle de données comme la clé de cette JSON est données-à-dire est le serveur accepte commeComment envoyer des données de formulaire dans retrofit2 Android
data={"country":"india","devicetype":"android"}
je utilise retrofit j'utilise comme multipart cette
@Multipart
@POST("initiate")
@Headers({
"Content-Type: application/json",
"Cache-Control: no-cache"
})
Call<UserInfoServerResponse> getUserInfoRequest(@Part(value="data") UserInfo mUserInfo);
ici UserInfo est le JSON, mais je reçois un message échec du serveur après que j'ai utilisé FormUrlEncoded methord
@FormUrlEncoded
@POST("initiate")
@Headers({
"Content-Type: application/json",
"Cache-Control: no-cache"
})
Call<UserInfoServerResponse> getUserInfoRequest(@Field(value="data",encoded = false) String mUserInfo);
son eteint est même résultat de défaillance du serveur, mais les données envoyées au serveur est dans le formate
data=%7B%22country%22%3A%22india%22%2C%22devicetype%22%3A%22%22%7D
Mon UserInfo.class
public class UserInfo {
public String country;
public String devicetype;
public UserInfo(String country,String devicetype) {
this.country=country;
this.devicetype=devicetype;
}
}
Mon adaptateur classe
RemoteRetrofitInterfaces mService;
Retrofit mRetrofit;
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS).addInterceptor(interceptor)
.build();
mRetrofit = new Retrofit.Builder()
.baseUrl(AppConstant.HOST).addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
mService = mRetrofit.create(RemoteRetrofitInterfaces.class);
Call<UserInfoServerResponse> api = mService.getUserInfoRequest(new Gson().toJson(mUserInfo));
api.enqueue(new Callback<UserInfoServerResponse>() {
@Override
public void onResponse(Call<UserInfoServerResponse> responseCall, Response<UserInfoServerResponse> response) {
if (response.body().status != null) {
if (response.body().status.equals("success")) {
Log.d(TAG, "success---");
}
} else {
Log.d(TAG, "Failed---");
}
}
@Override
public void onFailure(Call<UserInfoServerResponse> responseCall, Throwable t) {
t.printStackTrace();
}
});
alors comment puis-je envoyer le JSON au serveur en utilisant la modernisation avec succès je suis passé par le retofit document et suivre quelques étapes, mais je ne reçois aucun résultat. quelqu'un peut me aider dans cette
Merci
Déposez votre classe 'UserInfo' –
essayer ajouter "Accepter: application/json" pour les en-têtes. –
Où est votre code Retrofit RestAdapter? –