0

プロジェクトで予期しない問題が発生しました。問題は、GET 要求を介して RESTful Web サービスに送信する必要がある URL がコード内でその場で生成されることです。たとえば、送信する URL は次のようになります。http://mysampleserver.com:8080/calc/8999/bpaX

RESTful サーバーは、次の形式の最後のパラメーターとして URL を受け入れます。

http://myRestfulAPI.domainname.com/capture/bbbb/http://mysampleserver.com:8080/calc/8999/bpaX

また、System.Net.HttpUtility.UrlEncode(....) を使用して、最初に「送信する URL」をエンコードし、RESTful サービス呼び出しに組み込みました。

その結果、以下のエラーが発生しました。

System.Web.HttpException: 潜在的に危険な Request.Path 値がクライアントから検出されました (:)

それを解決するために、この Web ページで説明されている手順に従いましたが、うまくいきませんでした。

MVC 4 を使用して、C# で RESTful API を実装しています。

このショーストッパーの問題を回避する方法の手がかりやアイデアはありますか?

4

3 に答える 3

0

あなたが試した手順は正しい手順です。この質問も参照してください潜在的に危険です...これは同じ問題です。

.NET が既定で URL に許可しない文字がいくつかあります:。これは (少なくともクエリ文字列として) それらの 1 つです。それらは「潜在的に危険」です。構成ファイルにこの変更を加えると、これらの文字をアプリケーションに渡すことができます。

于 2013-05-10T03:50:52.983 に答える
-1

クエリ文字列 (mvc パラメーター) で URL を Url.Encode する必要があります。そうしないと、MVC がパラメーターとしてデコードするためのより多くの URL エンコードとして解釈されます。@Url.Encode(yourStringObject) のようなものを試して、最後の値またはクエリとして渡します (つまり &q=url)

于 2013-05-10T03:44:52.070 に答える