如何在WebClient中更改UrlReferrer

时间:2019-03-05 07:36:09

标签: 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);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

该Web客户端实际上并没有在调用它的客户端(Web API)的上下文中运行,并且不会填充引荐来源网址。

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

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

您将手动添加它,这并不理想,但这是您可以做的最好的事情。请注意,如果发生以下情况,则未设置Referer标头:

  • 所引用的资源是本地文件或uri
  • 请求是不安全的,所引用的资源是安全的
相关问题