2015-05-19 13 views
5

Tôi muốn chuyển thông số trang web cho webapi, nhưng nó không hoạt động.Vượt qua tham số dài để asp.net webapi

Webapiconfig: điều khiển api

config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

Web: lấy param và trả lại htmlsnapshot của trang web khác

[HttpGet] 
    [Route("api/snapshot/{param}")] 
    public string GetSnapShot(string param) 
    { 

     string fragment = param; 
     string content = ""; 

     if (fragment != null) 
     { 
      int firstSlash = fragment.IndexOf("/"); 
      if (firstSlash <= 2) 
       fragment = fragment.Substring(firstSlash + 1, fragment.Length - firstSlash - 1); 
      using (IWebDriver driver = new PhantomJSDriver()) 
      { 
       string url = String.Format("http://domain.com/{0}", fragment); 
       driver.Navigate().GoToUrl(url); 

       content = driver.PageSource; 
      } 
     } 
     return content; 
    } 

nếu tôi cố gắng api/chụp/du-lieu -> nhấn điều khiển tốt nhưng nếu tôi chuyển sang một cách phức tạp hơn như

api/snapshot /% 2Fdu-lieu% 2Fbong-da-y-Serie-A% 2Fseason% 2F1% 2Ftong-quan -> không hoạt động, trả lại 404

Vui lòng thông báo.

Trả lời

1

Tại sao không bạn đưa param của bạn vào chuỗi truy vấn ?? Mã của bạn sẽ trở thành

[HttpGet] 
[Route("api/snapshot")] 
public string GetSnapShot(string param1,string param2,string param3) 
{ 
} 

Và từ bất cứ nơi nào bạn gọi api, tạo ra các địa chỉ yêu cầu http://<whatever domain you use>/api/snapshot?param1=valueparam1&param2=valueparam2&param3=valueparam3

+0

Không, tôi chỉ muốn cho nó một param độc đáo như trang web khác sẽ vượt qua trong một params năng động, WebAPI tôi trả về htmlsnapshot. Tôi đã cập nhật mã của mình ở trên. –

+0

là có bất kỳ thông báo lỗi hoặc một cái gì đó mà xác định "không làm việc"? –

+0

nó trả về lỗi 404. Cảm ơn –

0
[HttpGet] 
     [Route("api/snapshot/{*param}")] 
     public string GetSnapShot(string param) 
{ 

} 

Nó hoạt động bây giờ, cảm ơn tất cả.

Các vấn đề liên quan