1

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

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

4

2 回答 2

1

对于 ASMX Web 服务,您可以考虑以下方法。SoapHttpClientProtocol 类包含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");
            //...
} 

结果

在此处输入图像描述

于 2015-10-26T09:03:18.717 回答
0

我不知道您使用什么类型的网络服务。对于 WCF 服务,您可以使用:如何为每个 WCF 调用添加自定义 HTTP 标头? 对于 ASMX Web 服务:向 ASMX 服务请求添加 SOAP 标头

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

于 2015-10-25T23:12:44.220 回答