通过 Retrofit 调用发布请求时出现 400 bad request 错误

Posted

技术标签:

【中文标题】通过 Retrofit 调用发布请求时出现 400 bad request 错误【英文标题】:While calling a post request through Retrofit getting 400 bad request error 【发布时间】:2021-08-29 12:14:33 【问题描述】:

通过 Postman API 可以工作,但相同的 API 不能与 Retrofit 一起工作 我收到 400 错误请求并进行改造

返回真或假的端点 @POST("/emregax/api/allscript/saveappointment") 调用 saveAppointment(@Header("x-auth-token") String header1, @Body String yy);

    and this is my method from where i am calling this above API
    private void saveAppoint(String token, Saveappointment mSaveappointment)
    APIInterface service = APIClient.getRetrofitInstance().create(APIInterface.class);
    JSONObject paramObject = new JSONObject();
    paramObject.put("ehrAppointmentId", "");
    paramObject.put("ehrPatientId", mSaveappointment.getEhrPatientId());
    paramObject.put("appointmentType", mSaveappointment.getAppointmentType());
    paramObject.put("ehrProviderAbbrev", mSaveappointment.getEhrProviderAbbrev());
    paramObject.put("ehrProviderId", mSaveappointment.getEhrProviderId());
    paramObject.put("reason", mSaveappointment.getReason());
    paramObject.put("startDateTime", mSaveappointment.getStartDateTime());

    Call<Boolean> call = service.saveAppointment(token, paramObject.toString());
    call.enqueue(new Callback<Boolean>() 
        @Override
        public void onResponse(Call<Boolean> call, Response<Boolean> response) 
            progressDialog.dismiss();
            //boolean value=response.body();
            if (!response.isSuccessful()) 

                Toast.makeText(mcontext, "" + response.code() + " " + response.body(), Toast.LENGTH_SHORT).show();
            
        
        @Override
        public void onFailure(Call<Boolean> call, Throwable t) 
          Toast.makeText(mcontext, "" + t.getMessage(), Toast.LENGTH_SHORT).show();
        
    );
   

【问题讨论】:

【参考方案1】:

400 Bad Request 错误意味着客户端发出的请求不正确或损坏,服务器无法理解(解析)它。 400 Bad Request 错误的一些原因:

网址无效。 无效/缺少标头。

也许响应错误正文包含一些详细信息?

【讨论】:

我尝试了很多方法都没有成功。然后尝试了凌空抽射,效果很好。谢谢

以上是关于通过 Retrofit 调用发布请求时出现 400 bad request 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 NativeEthernet 发布到 InfluxDB 时出现 400 错误请求

尝试使用 XHR 联系 WCF 服务时出现 400 错误请求

点击发送请求时出现 Cypress 400 XHR 错误

尝试通过 createUser Mutation 创建新用户时出现 400 错误

发布到 Razor 页面时出现 400 错误请求

debug = False 时出现错误请求 400