【问题标题】:Set Request Header SharePoint web service设置请求标头 SharePoint Web 服务
【发布时间】:2016-01-19 08:05:39
【问题描述】:

我正在使用 2010 SharePoint Lists Web 服务通过 c# 应用程序返回内容类型及其字段。图书馆位于一个语言设置为威尔士语的网络中,但另一种语言设置为英语。这意味着如果浏览器中的 Internet 选项设置为英语,则库以英语显示。 我已经能够为使用客户端对象发出的请求设置 Accepts-Language 标头,但无法为 Web 服务这样做。

是否可以查看通过 SharePoint Web 服务发出的请求的标头,如果可以,如何查看?

【问题讨论】:

    标签: c# .net sharepoint sharepoint-2010 sharepoint-webservice


    【解决方案1】:

    对于 ASMX Web 服务,您可以考虑以下方法。 SoapHttpClientProtocol Class 包含 GetWebRequest Method 可用于指定自定义标头。

    生成代理类后,创建一个派生自它的类并设置自定义标头,如下所示:

    public class ListsEx : Lists
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            var request = base.GetWebRequest(uri);
            //Add the Accept-Language header (for Danish) in the request.
            request.Headers.Add("Accept-Language:da");
            return request;
        }
    }
    

    其中Lists 是生成的代理类的名称。

    用法

    using (var client = new ListsEx())
    {
          client.Url = webUri + "/_vti_bin/Lists.asmx";
          var reult = client.GetList("Pages");
                //...
    } 
    

    结果

    【讨论】:

      【解决方案2】:

      我不知道您使用什么类型的网络服务。如果是 WCF 服务,您可以使用:How to add a custom HTTP header to every WCF call? 如果是 ASMX Web 服务:Adding SOAP headers to ASMX service requests

      在这两种情况下都使用 Accept-Language 标头,例如“Accept-Language:en”

      【讨论】:

        猜你喜欢
        • 2014-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        相关资源
        最近更新 更多