私は .Net 4 で RESTFul Web Api サービスを作成している Web API 初心者です。呼び出しているクラスのコントローラーを構成しましたAuthentication
。私が抱えている問題は、JSON データを Web API サービスに投稿または配置すると、コントローラーのハンドラーが呼び出されますが、パラメーター オブジェクトには NULL データが含まれていることです。データを正常に取得できますが、Post と Put で空のパラメーター オブジェクトが生成されます。
クライアント アプリケーションと Fiddler からテストしましたが、同じ結果が得られました。これが私がフィドラーから送っているものです:
Action: PUT
URI: http://127.0.0.1:81/Authentication/xyz/
HTTP Version: HTTP/1.1
Request Headers:
User-Agent: Fiddler
Host: 127.0.0.1:81
Content-Type: application/json; charset=utf-8
Content-Length: 75
Request Body:
{"hashvalue":"kbVFNeBbNHmYQXXlS6d7Ag==","password":"test","username":"dan"}
認証コントローラーの Put ハンドラーにブレークポイントを設定すると、次のようになります。
public void Put(string IDstring, Authentication value)
{
}
ウォッチウィンドウに次のように表示されます。
IDstring null string
value {bbsRESTResources.Authentication} bbsRESTResources.Authentication
hashvalue null string
password null string
username null string
私の認証クラスは次のようになります。
namespace bbsRESTResources
{
public class Authentication
{
public string username;
public string password;
public string hashvalue;
}
}
私のルートは次のようになります。
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
これが認証を処理する良い方法であるかどうか気にしないでください。これは、アプリケーションをエンドツーエンドでテストするための最初のパスにすぎません。私はこの問題を抱えている他の人々の例を探しましたが、何も見つかりませんでした.