如何在web-API中获取域名/IP名称
本文关键字:域名 IP 名称 获取 web-API | 更新日期: 2023-09-27 18:04:51
如何在web-API中获得以下IP地址中提到的(ipName:PortNumber) ?
https://**ipName:PortNumber**/ProductController/{productId}
我们有不同的服务器,如:000.00.000:8080 (ipname:portnumber), 111.11.111:8181.
我想把这些动态加载到一个字符串中,如下所示。
string webServiceUrl = "https://"+ IP name +"Product Controller/{product Id}"
如果您的URI是一个字符串,您可以获得您想要的信息如下:
Uri uri = new Uri("https://example.com:1234/ProductController/7");
string host = uri.Host; // "example.com"
int port = uri.Port; // 1234
在ApiController
内部,您可以获得当前请求的URI为Request.RequestUri
。
如果你想构造一个给定主机和端口的URI,你可以简单地做一些轻量级的事情,像这样:
string uri = string.Format("https://{0}:{1}/ProductController/7", host, port);
或者使用一些更健壮的东西,比如使用UriBuilder
类
下面是我如何在Web Api中访问Request对象…
if (Request.Properties.ContainsKey("MS_HttpContext"))
{
var ip = (HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.UserHostAddress;
var host = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.Url.Host;
var port = ((HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request.Url.Port;
}
希望能有所帮助。