2016-11-14 6 views
0

WebAPI C#アプリケーションがあります。このAPIは、与えられたidに基づいて、データベースからいくつかのコンテンツを取得C#WebAPIのHTTP GETからコンテンツ本文を読み取る

[HttpGet] 
public HttpResponseMessage Get(string id) 

:私のGETメソッドは次のように定義されます。もう1つのパラメータは必須ですが、URL上で動作させるのは時間がかかりますので、GET本体を使用して2番目のパラメータを送信しています。

getメソッドの中からどうやって取得できますか?

私は

var dataOnBody = await Request.Content.ReadAsStringAsync(); 

を試みたが、Get方法はasyncではないと私はそれが(私はの内容を読み取り、通常のブロッキング機能を望んでいることである必要はありませんだと思うと、それは動作しません。体と文字列を出力)

私はちょうどあなたが何らかの形でこれを行うために管理している場合でも、リクエストボディ

+0

'public HttpResponseMessage Get(string id、[FromBody] bodyValue)へのChaneコントローラメソッド' – Fabio

+0

これは参考になるかもしれません:[http://stackoverflow.com/a/983458/1565525](http://stackoverflow.com/a/983458/1565525) – Fabio

+0

あなたのケースでPostメソッドを使用しないと、 –

答えて

1

から私の文字列を抽出するための簡単な方法を必要とする、あなたはそのサポートが普遍的ではないでしょう。 HTTP specsは言う:

GETメソッドは、Request-URIによって識別されるどんな情報( 実体の形で)取得を意味します。

したがって、返されるデータはURIにのみ依存し、本文には依存しません。多くの図書館では、GET中に依頼主体を送ることさえできません。

+0

非常に長いパラメータがHTTP GET要求の一部として送信される必要がある場合、最適なアプローチは何ですか? –

+0

URIに入ることができない場合は、POSTまたはPUTが最適です。あるいはウェブソケット。しかし、それはすべてあなたが実際に達成しようとしているものに依存します。 –

関連する問題