我希望将网站参数传递给Webapi,但它没有起作用。
Webapiconfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Web API控制器:接收参数并返回其他网站的HTML快照。
[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;
}
如果我尝试访问api/snapshot/du-lieu,控制器可以正常工作,但如果我传递一个更复杂的参数,比如api/snapshot/%2Fdu-lieu%2Fbong-da-y-Serie-A%2Fseason%2F1%2Ftong-quan,它就无法工作,会返回404错误。请给予建议。