我使用以下代码从我的api获取数据:
using (var client = new HttpClient())
{
try
{
string url = "http://localhost:58639/api/cars/" + carId + "?includeOwners=true";
var model = client
.GetAsync(url)
.Result
.Content.ReadAsAsync<Car[]>().Result;
Car c = model[0];
newCount = c.Persons.Count;
/* More Code */
}
}
在WebApiConfig中使用此路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
有没有办法动态创建URL,这样如果网站托管在localhost以外的某个地方,这仍然有效?我试图用Url.RouteUrl和UrlHelper做到这一点,但我无法找到一种方法来包含&#34;?includeOwners = true&#34;用它们过滤。
答案 0 :(得分:0)
一种方法是将服务器部分放在配置文件(web.config等)中,并在构建网址时从那里读取。
只需在appSetting中添加基本网址部分,然后使用ConfigurationManager.AppSettings["NameOfKey"]
答案 1 :(得分:-2)
请尝试以下代码:
string domainName = ((System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.ServerVariables["HTTP_HOST"];
您可以动态加载主机和端口或整个域名。