设置请求 Header SharePoint Web 服务

Set Request Header SharePoint web service

我正在使用 2010 SharePoint 列表 Web 服务 return 内容类型及其通过 C# 应用程序的字段。图书馆位于网络中,其语言设置为威尔士语,但备选语言为英语。这意味着如果浏览器中的 Internet 选项设置为英语,图书馆将以英语显示。 我已经能够为使用客户端 object 发出的请求设置 Accepts-Language header,但无法为 Web 服务这样做。

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

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

在这两种情况下使用 Accept-Language header 就像 "Accept-Language:en"

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

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

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 是生成的代理的名称 class。

用法

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

结果