私のルートは次のようになります:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{uri}",
defaults: new { id = RouteParameter.Optional, uri = RouterParameter.Optional }
);
{uri}パラメータの代わりに送信するBase64でエンコードされたURIがあります。不正な文字はありません(適切にフォーマットし、確認しました)。ただし、長さは約300〜400文字です。
long base64パラメータを使用してこのアドレスにDELETEリクエストを送信すると、400 BAD STATUS、INVALIDURL応答が返されます。パラメータを短くすると機能します。最大パスの問題があると思いますか?
パスパラメーターの代わりにクエリ文字列を使用することは機能しますが、RESTfulアプローチを使用したいと思います。より長いパスベースのパラメーターを許可するためにWebAPIプロジェクトで変更できる構成設定はありますか?
これは機能します:
http://localhost:99999/api/reg/10?uri=<long_base64_parameter>
これは動作しません:
http://localhost:99999/api/reg/10/<long_base64_parameter>