【问题标题】:HTTP Request not Working with Retrofit but it's work fine in PostmanHTTP 请求不能与 Retrofit 一起使用,但在 Postman 中可以正常工作
【发布时间】:2019-04-27 01:30:25
【问题描述】:

我遇到了一个奇怪的问题 .. 我正在开发应用程序,我的所有请求都可以正常工作,但最后三个没有任何理由! 我搜索了可能导致此问题的原因,但我什么都不明白……尽管该请求在 Postman 中运行良好!

这是我的请求函数:

 @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;
    }

我的所有其他请求都工作正常,但我不知道是什么导致这些请求出错!

【问题讨论】:

标签: android retrofit2 postman okhttp


【解决方案1】:

这是服务器错误,它需要另一个字符集/集合,这使它不适用于改造,但适用于邮递员

【讨论】:

  • 你能详细说明吗?
猜你喜欢
  • 2018-03-04
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多