Vorrei passare un parametro di un sito web a un webapi, ma non funziona.Passa il parametro long a asp.net webapi
Webapiconfig: controller di api
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Web: prendere il parametro e restituire il htmlsnapshot dell'altro sito
[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;
}
se provo api/snapshot/du-lieu -> colpito il controllore bene, ma se mi passa in un più complesso come
api/snapshot /% 2Fdu-lieu% 2Fbong-da-y-Serie-a% 2Fseason% 2F1% 2Ftong-quan -> non riesce a lavorare, tornare 404
Si prega di avvisare.
No, lo voglio solo un parametro univoco in quanto gli altri siti passeranno in parametri dinamici, la mia webapi restituisce l'htmlsnapshot. Ho aggiornato il mio codice in pieno sopra. –
c'è qualche messaggio di errore o qualcosa che definisce "non funziona"? –
restituisce errore 404. Grazie –