HTTP-запрос не работает с Retrofit, но в Postman работает нормально - PullRequest
0 голосов
/ 25 ноября 2018

У меня странная проблема. Я нахожусь в процессе разработки приложения, и все мои запросы работают нормально, но последние три не работали без причины !!Я искал, что может вызвать эту проблему, но я ничего не понимал ... хотя в Почтальоне запрос просто отлично работает !!

вот моя функция запроса:

 @FormUrlEncoded
    @POST("addContractBenefit")
    Call<ResponseBody> addContractBenefit(   @Header("Accept") String Accept,
                                             @Header("Authorization") String token,
                                             @Field ("contract_id") int contract_id ,
                                             @Field ("contract_benefit") String contract_benefit
    );

и вот мой вызов повторного набора:

 Call<ResponseBody> responseBodyCall = service.addContractBenefit("application/json","Bearer "+prefManager.getAPIToken() , contract_id , b.contractBenefit.getText().toString() );
        responseBodyCall.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                mDialog.dismiss();
                String jsonStr = null;
                try {
                    jsonStr = response.body().string();
                    Log.d("response" , jsonStr);

                } catch (IOException e) {
                    e.printStackTrace();
                }
                JSONObject json = null;
                try {
                    json = new JSONObject(jsonStr);
                    JSONObject statesResponses = json.optJSONObject("states");
                    boolean success = statesResponses.getBoolean("success");
                    if(success){
                        Toast.makeText(getContext(), getString(R.string.added_successefuly), Toast.LENGTH_LONG).show();
                        benefitAdapter.notifyDataSetInvalidated();
                        b.contractBenefits.invalidateViews();
                    }

                }
                catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.d("failure", t.getMessage());
                mDialog.dismiss();
            }});

и RetrofitClientInstance

  public static Retrofit getRetrofitInstance() {
        if (retrofit == null) {
            retrofit = new retrofit2.Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }
        return retrofit;
    }

всемои другие запросы работают нормально, но я не знаю, что вызвало ошибку в этом запросе!

1 Ответ

0 голосов
/ 25 ноября 2018

Это была ошибка сервера. Требуется другой набор символов / коллекция, из-за которой он не работает с модификацией, а работает с почтальоном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...