0

Sql Azureデータベースでcrudを実行するためにput、post、getおよびdeleteを記述したAsp.Net Web APIを作成しました。データベースとAPIはともにMicrosoft Azureで公開されています。私は正常にGETコントローラを呼び出し、ブラウザでデータをフェッチすることができます。私は、ハードコードされたデータをコンソールアプリケーション経由でポストしようとすると、何もしません(エラーも例外も与えません)。下記のウェブAPIコントローラです:Microsoft AzureでホストされているAsp.Net Web APIにデータを投稿できない

public HttpResponseMessage Post([FromBody] Product prod) 
    { 
     try 
     { 
      se.Products.Add(prod); 
      se.SaveChanges(); 

      var message = Request.CreateResponse(HttpStatusCode.Created, prod); 
      message.Headers.Location = new Uri(Request.RequestUri + prod.Product_ID.ToString()); 
      return message; 
     } 
     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex); 
     } 
    } 

Method from the client console app to send data is shown in this picture

私はそれで何を得なかっresponse.Responseにブレークポイントを置くことによって、この方法を検査しようとしましたが、不正な要求を示しました。 Here is the screenshot to it.

晴れ日にホストされているWeb APIを介してデータベースにデータを正常に投稿する方法を教えてください。ありがとう:)

+0

GermanCH、優れたアイデアをコントローラに送信する前に、パラメータを文字列化。アリは、最初のステップは正常にエンドポイントをヒットポストマンやFiddler4を使用してHTTP POSTリクエストを構築することである。あなたがそうすることができない場合は、してくださいまた、 Productクラスを投稿してください。これらのツールのいずれかを使用してリクエストを作成すると、呼び出しメソッドが送信され、その違いを参照してください。 –

+0

ありがとう!私はAPIの私の実際のアドレスにそれがホストされているか、localhostにホストされているかの投稿要求を送信する必要がありますか?私はそれが完璧に動作し、ローカルデータベースにデータを投稿するlocalhostのためにそれを試しました。 –

+0

APIがホストされているアドレスにデータを投稿しようとしましたが、コンソールクライアントアプリケーションと同じレスポンス、つまりError:400 Bad Requestが返されました。 –

答えて

0

あなたは「Bad Request」というレスポンスを受けています。つまり、リクエスト本体で送信しているデータに問題があります。ヌル可能な属性がすべて送信されていないかどうかを確認します。

また、送信されたデータが正しければ問題を引き起こす可能性のある「コンテンツタイプ」ヘッダーin this answerの設定を確認してください。

私は、郵便配達員のような他のRESTクライアントを使用して、要求のニーズをチェックしようとします。

答えとしてこれを送信する申し訳ありませんが、私はコメントしたいと思いますが、私は何の権限を持っていない:(

+0

私は上記の両方のことを試みましたが、すべて無駄でした。 –

0

方法にjオブジェクトのデータ型としてパラメータを渡すと、あなたの必要なオブジェクト/クラスに型キャストしてみます。JSON。

[HttpPost] 
     public HttpResponseMessage Post([FromBody] JObject prod) {...} 
関連する問題