2017-11-03 4 views
0

RESTサービスのパラメータとしてURLを渡そうとしています。.NetのRESTfullサービスのパラメータとしてのURL

要求: https://LocalHost/api/InsertUrl/ {タイプ}、{URL}、{メモ} https://LocalHost/api/InsertUrl/External,https://www.amazon.com,RANDOM NOTE

サンプルコード:私は取得しています。このエンドポイントをテストする(POST付き)

[HttpPost] 
[Route("api/InsertUrl/{Type},{URL},{Notes}")] 
public bool SetUrl(string Type, string URL, string Notes) 
{ 

    bool Status = repository.SetupUrl(Type, URL, Notes); 
    return Status ; 

} 

使用POSTMAN :: 404 - ファイルまたはディレクトリが見つかりません。 探しているリソースが削除されているか、名前が変更されているか、一時的に使用できない可能性があります。

私はここで間違っていますか?

+0

POSTメソッドを試しましたか?このためにGETメソッドが動作しません – Thanigainathan

+0

そして、一部のハッカーはあなたのURLを悪質なURLで呼び出します。 *なぜ*このようにURLを渡したいですか? –

+0

'[HttpPost]'です。これは* GET *メソッドではありません。これはPOSTです。 'GET'はリソースを取得し、変更を加えないことになっています。あなたは 'Route'属性からパラメータを削除し、すべてをPOSTパラメータとして送信するようにクライアントコードを変更する必要があります –

答えて

0

IISはURL内のドットが好きではなく、拡張子をつけて別のモジュールを経由する必要があると考えています。

<configuration> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 

この問題は、実際に、既に別のポストhereに答えている:あなたはあなたのアプリケーションを介してルーティングすべての要求ができます。これを回避するために

+0

この制限は非常に有効なセキュリティ上の理由があります。もう1つのセキュリティ上のリスク:悪意のあるURLをサービスに渡すハッカー –

+0

さらに、OPはすでにこのメソッドを 'HttpPost'としてマークしています。メソッド自体が変更され、最初はGETであってはならない –

関連する問題