【问题标题】:412 Precondition Failed while PUT request from retrofit2412 Precondition Failed while PUT request from retrofit2
【发布时间】:2017-03-15 20:33:00
【问题描述】:

我正在使用 retrofit2 向服务器发出 put 请求。使用 postman 使用相同的标记、正文和路径,内容已成功编辑,但使用改造 2 时出现相同的错误,说明前提条件失败。 412 错误。

@PUT("issues/{id}/")
Call<IssueList> putIssue(@Header("Authorization")String token,
                         @Body IssueList issue,
                         @Path("id") Double issueId);

编辑

Call<IssueList> issuePostRequest = postService.putIssue(Splash.token,
                    issueRequest,editIssueId);
            issuePostRequest.enqueue(new Callback<IssueList>() {
                @Override
                public void onResponse(Call<IssueList> call, Response<IssueList> response) {
                    if (!response.isSuccessful()){
                        System.out.println(response.message());
                        System.out.println(response.code());
                        System.out.println(response.headers());
                        return;
                    }
                    System.out.println("passed");
                }

                @Override
                public void onFailure(Call<IssueList> call, Throwable t) {

                }
            });

响应不成功。

【问题讨论】:

  • 尝试不使用最后一个斜线,@PUT("issues/{id}")
  • 我以前试过。那是行不通的。
  • 您确定 id 是 Double 吗?听起来有点奇怪。我什至不知道改造会如何格式化它,但我怀疑它会添加小数位,这对于 id 来说听起来很奇怪。这将产生一个类似issues/123.0/ 的网址

标签: android retrofit2


【解决方案1】:

感谢大家,我找到了问题所在。这不是改造,而是我发送的对象。我正在通过 @Body 发送一个包含不需要的变量的对象。

我了解了http拦截器日志,这是一个很好的改造工具,我能够定位到根错误。

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 2015-06-02
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多