gpt4 book ai didi

c# - UrlHelper 在生成 URI 时不使用引用主机

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

我正在开发一个 MVC Web API 应用程序,我需要从许多不同设备(例如智能手机)上的 Web 浏览器访问该应用程序。在开发过程中,我希望能够在通过手机访问网站时进行调试。为此,我设置了 Fiddler 以提供反向代理。在本地,服务器在 localhost:55950 上运行,但我可以通过我的手机以 MyComputer:8888 访问该站点。这部分正在运行。

问题是我在 REST 响应中创建了 URI。当我访问位于 MyComputer:8888 的站点时,我需要 URI 类似于 MyComputer:8888/services/api/files,但我得到的是 localhost:55950/services/api/files,这在我的手机上失败了。我正在使用 UrlHelper 类来生成 URI。我已经看了一遍,但还没有找到一种方法来告诉系统使用引荐来源网址,而不是本地主机。我在请求中看到了所需的 Referrer 值,所以我认为我可以编写代码来修补 URI,但这似乎是一个常见问题,并且必须有一种方法可以使 UrlHelper 正常工作。

如果有人能指出正确的方向,我将不胜感激。

最佳答案

查看 this SO answer .

var httpContext = HttpContext.Current;

if (httpContext == null) {
var request = new HttpRequest("/", "http://example.com", "");
var response = new HttpResponse(new StringWriter());
httpContext = new HttpContext(request, response);
}

var httpContextBase = new HttpContextWrapper(httpContext);
var routeData = new RouteData();
var requestContext = new RequestContext(httpContextBase, routeData);

return new UrlHelper(requestContext);

关于c# - UrlHelper 在生成 URI 时不使用引用主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625991/

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