「UploadsController」というコントローラーがあります。次のような GET アクションがあります。
public string GetUpload([FromUri]string action)
{
return "hey " + action;
}
ブラウザで次の API URL に移動すると、成功した応答が返されます。
http://localhost:52841/MySite/api/uploads?action=testaction
しかし、WebForms アプリでコード ビハインドから API を呼び出そうとすると、404 応答が返されます。
Global.aspx ファイルにあるものは次のとおりです (最初のファイルで実行する必要があると思いますが)。
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
RouteTable.Routes.MapHttpRoute(
name: "Default2Api",
routeTemplate: "api/{controller}/{action}",
defaults: new { controller = "Uploads", action = "GetUpload" });
API を呼び出す方法は次のとおりです。
// Send a request asynchronously continue when complete
client.GetAsync("http://localhost:52841/MySite/api/uploads?action=testaction").ContinueWith(
(requestTask) =>
{
// Get HTTP response from completed task.
HttpResponseMessage response = requestTask.Result;
// Check that response was successful or throw exception
response.EnsureSuccessStatusCode();
// Read response asynchronously as JsonValue
response.Content.ReadAsAsync<string>().ContinueWith(
(readTask) =>
{
var result = readTask.Result;
//Do something with the result
});
});
私は以前にこれをやったと思っていました(RCバージョンで、現在RTMを使用しています)が、これを取得できないようです.
補足として、何らかの理由でリクエストがフィドラーに表示されません。これは、これらの種類のものをデバッグしようとしているときにちょっと面倒です。
どんな助けでも大歓迎です。