2017-03-06 4 views
0

retrofit2を使用してサーバーにput要求を出しています。同じトークン、postmanを使ったボディとパスでは、内容は正常に編集されますが、retrofit2を使って同じことが起こります。前提条件は失敗しました。 412エラーです。412 retrofit2からのPUT要求時に前提条件が失敗しました

@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) { 

       } 
      }); 

レスポンスは成功しません。

+1

@PUT( "issues/{id}") – sadat

+0

これまでに試したことがあります。それは動作していません。 –

+0

IDが '' Double''ですか?少し奇妙に聞こえる。私はどのようにretrofitがこれをフォーマットするかわからないが、私はそれがIDのために奇妙に聞こえる小数点以下の桁を追加すると思われる。これは '' issues/123.0/''のようなURLになります – Fred

答えて

0

皆様のおかげで、私は問題が何かを発見しました。改造ではなく、私が送っていた物体を使っていました。私は不要な変数を持つ@Bodyを通してオブジェクトを送信していました。

私はHTTPインターセプタログについて学びました。これは、改良の大きなツールであり、私はルートエラーを突き止めることができました。

関連する問題