0

私はMySQLデータベースを使用してWEB APIを作成しました。この表には、メータのシリアル番号に関するデータが含まれています。メータのシリアル番号は、信号強度値と信号強度が来る日時です。今のところ私はメーターのシリアル番号を送信してデータを取得するのに成功しています。Web apiの日付時間を使用して

今では、日付時刻パラメータも送信しています。しかし、それは私のために働いていない。以下は私がやったことです。

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
     { 
      try 
      { 
       return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=> m.msn == msn).Where(a=> a.date_time < dt)); 
      } 
      catch (Exception ex) 
      { 
       return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
      } 
     } 

WebApiConfigファイルは、私もで検索しました私は、私が取得していますエラーはこのためA potentially dangerous Request.Path value was detected from the client (:).

あるhttp://localhost:14909/api/meters/GetByMsn/000029000033/2017-10-06T07:52:27

のようなURLを渡しています。その後

config.Routes.MapHttpRoute(
     name: "GetByMsn", 
     routeTemplate: "api/{controller}/{action}/{msn}/{dt}", 
     defaults: null, 
     constraints: new { msn = @"^[0-9]+$" , dt = @"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$" } 
     ); 

を含み解決策を見つけることができませんでした。それは私のために動作しますが、私は時間でそれを追加するとき、それは

に動作しません 2017-10-06日付のみを通過する間の更新1

をまた、私は、日付時刻に:を交換しましたが、まだそれは私のため

を働いていません

クイックチェックの場合、私はこれをチェックしましたquestionまだ解決策を解決することができません。

私は、私はすべてのヘルプは高く評価されるだろう

知らない何かが欠けする必要があります

答えて

0

多くの検索の後、私は最終的に解決策を見つけました。

Web.configで事前に定義されている許可されていない/無効な文字が変更されました。以下のように追加しました:<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,*,\,?" />.無効な文字の標準リストから:を削除しました。

詳しくはこちらsolution

関連する問題