2017-08-28 3 views
0

私は3つのパラメータ(param1、param2、param3)で構成されるAPIを持っています。電子メールパラメータのために働いていないので、 '@'文字。しかし正常に正常に動作します。私の下のコードをチェックしてください。パラメータが@文字で構成されている場合、Web APIが呼び出されない

APIコントローラ

public class ApiPINVerificationController : ApiController 
{ 
    public ApiPINVerificationController() 
    { 

    } 

    [HttpPost] 
    public IHttpActionResult GetStudentByPIN(string param1,string param2,string param3) 
    { 
     //Balance Search Audit Log Entry 
     SLAF.DataAccessManager.DTO.BalanceSearchLog balanceSearchLog = new DataAccessManager.DTO.BalanceSearchLog 
     { 
      PIN=param1, 
      CellPhone=param2, 
      Email=param3 
     }; 
     APIManager.InsertBalanceSearchLog(balanceSearchLog); 
     return Ok(new 
     { 
      Student=objStudent 
     }); 
    } 
} 

WebApiConfig

public static class WebApiConfig 
{ 
    public static string UrlPrefixRelative { get { return "~/Api"; } } 
    public static void Register(HttpConfiguration config) 
    { 
     //config.Formatters.Add(new BsonMediaTypeFormatter()); 
     config.Formatters.Remove(config.Formatters.XmlFormatter); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{action}/{param}", 
      defaults: new { param = RouteParameter.Optional } 
     ); 
     config.Routes.MapHttpRoute(
      name: "Api2", 
      routeTemplate: "api/{controller}/{action}/{param1}/{param2}" 
     ); 
     config.Routes.MapHttpRoute(
      name: "Api3", 
      routeTemplate: "api/{controller}/{action}/{param1}/{param2}/{param3}" 
     ); 
    } 
} 
+0

あなたはこのようなパラメータを受け取ることができません,,あなたはJSONパラメータまたは本文の内容パラメータを使用することができ –

答えて

1

私は、@文字があなたの問題ではないことを確信しています。電子メールが最後のパラメータであり、.comや他の何かで終わる可能性が高いので、URLは機能しません。

末尾に/文字を追加しようとすると、API呼び出しが成功することがわかります。

https://youraddress.com/api/something/something/param1/param2/[email protected]/ 
+0

はい@hankideその答えとして、それはあなたの問題を修正する場合 – sebu

+0

@sebu聞いて良い作業、それをマークして自由に感じます。 :) – hankide

関連する問題