我正在使用 2010 SharePoint 列表 Web 服务通过 ac# 应用程序返回内容类型及其字段。图书馆位于一个语言设置为威尔士语的网络中,但另一种语言设置为英语。这意味着如果浏览器中的 Internet 选项设置为英语,则库以英语显示。我已经能够为使用客户端对象发出的请求设置 Accepts-Language 标头,但无法为 Web 服务这样做。
是否可以查看通过 SharePoint Web 服务发出的请求的标头,如果可以,如何查看?
我正在使用 2010 SharePoint 列表 Web 服务通过 ac# 应用程序返回内容类型及其字段。图书馆位于一个语言设置为威尔士语的网络中,但另一种语言设置为英语。这意味着如果浏览器中的 Internet 选项设置为英语,则库以英语显示。我已经能够为使用客户端对象发出的请求设置 Accepts-Language 标头,但无法为 Web 服务这样做。
是否可以查看通过 SharePoint Web 服务发出的请求的标头,如果可以,如何查看?
对于 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");
//...
}
结果
我不知道您使用什么类型的网络服务。对于 WCF 服务,您可以使用:如何为每个 WCF 调用添加自定义 HTTP 标头? 对于 ASMX Web 服务:向 ASMX 服务请求添加 SOAP 标头。
在这两种情况下都使用 Accept-Language 标头,例如“Accept-Language:en”