在.net core 里应该怎么用呢?
.net Core 没有 Request 的属性...
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:04
@临冰听雪丶: 这个就是在.netcore2.1里的代码
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:05
@临冰听雪丶: 或者试一下 HttpContext.Request.Host
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:06
@老六代码: 类型“HttpContext”中不存在类型名“Request”
单独写也不行,我不知道是不是我少一个什么包。。。
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:09
@临冰听雪丶: 你直接写 HttpContext.Request.Host 编译出错吗?有可能编译不出错,只是Vs提示有问题
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:11
@临冰听雪丶: 不会少什么包的,这是HttpContext的一个属性
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:12
@老六代码: 直接编译不通过
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:14
@临冰听雪丶: 是.netcore的webapi还是其他的项目类型?
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:15
@老六代码: .net core 的webapi
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:20
@临冰听雪丶:在控制器里是可以直接获取到Request或者HttpContext.Request。你可以把代码贴出来
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:23
@老六代码: 我加了一个
private IHttpContextAccessor _accessor;
然后单独写的时候,
var host = HttpContext.Request.Host;
它会报错
对象引用对于非静态的字段、方法或属性“HttpContext.Request”是必需的
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:33
@老六代码: 在我没有加
private IHttpContextAccessor _accessor;
然后如果我这样写的话
var result = _accessor.HttpContext.Request.Host;
就直接给我返回了一个Html页面...
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 10:35
@临冰听雪丶:
如果你是在startup里注入IHttpContextAccessor 的话,
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton();
services.AddMvc();
}
那么你可以这样获取
private IHttpContextAccessor _accessor;
public ValuesController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
// GET api/values
[HttpGet]
public IEnumerable Get()
{
var ip = _accessor.HttpContext.Request.Host.Value;
return new string[] { ip };
}
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 10:42
@老六代码: 本地的可以获取到了,等可以发布到服务器上的时候再试试,谢谢您啦~
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-23 11:27
@临冰听雪丶: 可以就好 微软大法好
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-23 11:32
@老六代码: 今天发布上去了依然不行,获取到的值是 导航栏里的值。。
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-26 16:11
@临冰听雪丶: 你不是要获取地址栏的地址吗
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-26 16:12
@临冰听雪丶: 服务器地址获取方法
// GET api/values
[HttpGet]
public ActionResult> Get()
{
var ip = HttpContext.Connection.LocalIpAddress;
var port = HttpContext.Connection.LocalPort;
return new string[] { ip.ToString(), port.ToString() };
}
chesterdotchen
|
园豆:505
(小虾三级)
|
2018-11-26 16:14
@老六代码: 用 RemoteIpAddress 取到了
LocalIpAddress 取到的好像是主机的地址 127.0.0.1
嘿嘿,谢谢您啦~
临冰听雪丶
|
园豆:4
(初学一级)
|
2018-11-26 16:31