gpt4 book ai didi

c# - 向asp.net webapi传入长参数

转载 作者:太空狗 更新时间:2023-10-29 23:44:53 25 4
gpt4 key购买 nike

我想将网站参数传递给 webapi,但它无法工作。

网络接口(interface)配置:

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

Web api controller:获取参数并返回其他网站的htmlsnapshot

    [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 -> 可以很好地控制 Controller ,但是如果我传入一个更复杂的,比如

api/snapshot/%2Fdu-lieu%2Fbong-da-y-Serie-A%2Fseason%2F1%2Ftong-quan -> 失败,返回404

请指教。

最佳答案

为什么不将参数放入查询字符串中??你的代码将变成

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

无论你在哪里调用 api,创建请求 url http://<whatever domain you use>/api/snapshot?param1=valueparam1&param2=valueparam2&param3=valueparam3

关于c# - 向asp.net webapi传入长参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com