asp.net - 如何更改 WebClient 中的 UrlReferrer

标签 asp.net .net asp.net-web-api

我想在两个 WebApi 服务之间发布数据
目标服务中的Request.UrlReferrer始终为null
现在我想将目标服务 UrlReferrer 更改为源服务 Url

using System.Net;

namespace Test
{
    public class CustomWebClient
    {
        private string SimplePost(string address, string request)
        {
            using (var client = new WebClient())
            {
                // How to change UrlReferer
                return client.UploadString(address, request);
            }
        }
    }
}

最佳答案

该 Web 客户端并不真正在调用它的客户端 (Web API) 上下文中运行,并且不会填充引用站点。

我现在无法对此进行测试,但基本上 UrlReferer 只不过是 HTTP header Referer。因此,理论上您可以自己将该 header 添加到 WebClient 中...

client.Headers.Add("Referer","whatever_you_want_to_add");

您将手动添加它,这并不理想,但这是您能做的最好的事情。请注意,如果出现以下情况,则不会设置 Referer header :

  • 引用的资源是本地文件或 uri
  • 请求不安全,引用的资源是安全的

关于asp.net - 如何更改 WebClient 中的 UrlReferrer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54997603/

相关文章:

c# - 什么更喜欢与 asp.net 网站集成的 Windows 服务或进程来编码文件?

c# - HTMLAgilityPack Asp.net C#错误处理

.net - Remove(),Clear()或Dispose()

c# - 将 LINQ 的输出转换为 Int16

c# - 如何通过带有数据注释的 ModelState 验证 GET url 参数

c# - 在 C# .NET Web 应用程序中每天安排任务的正确方法

c# - AspNetCore v2.0 — 在另一个项目中呈现 razor-views 以进行集成测试

c# - 插入自定义实体状态代码

c# - 无法使用 Unity Bootstrap 为 ASP.NET Web API nuget 包注入(inject) System.Web.Http.Filters.ActionFilterAttribute

asp.net-mvc - 使用 Swashbuckle 托管现有的 Swagger.JSON 文件