我正在使用2010 SharePoint列表web服務來返回內容類型,它是通過c#應用程序的字段。圖書館是一個網頁,其語言設置爲威爾士語,但使用英語的另一種語言。這意味着如果瀏覽器中的Internet選項設置爲英文,則該庫顯示爲英文。 我已經能夠爲使用客戶端對象所做的請求設置Accepts-Language標頭,但尚未能爲Web服務執行此操作。設置請求標頭SharePoint網絡服務
是否有可能通過SharePoint Web Services發出的請求上看到標題,如果是這樣,如何實現?
我正在使用2010 SharePoint列表web服務來返回內容類型,它是通過c#應用程序的字段。圖書館是一個網頁,其語言設置爲威爾士語,但使用英語的另一種語言。這意味着如果瀏覽器中的Internet選項設置爲英文,則該庫顯示爲英文。 我已經能夠爲使用客戶端對象所做的請求設置Accepts-Language標頭,但尚未能爲Web服務執行此操作。設置請求標頭SharePoint網絡服務
是否有可能通過SharePoint Web Services發出的請求上看到標題,如果是這樣,如何實現?
在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");
//...
}
結果
我不知道你使用什麼類型的網絡服務。在WCF服務的情況下,您可以使用:How to add a custom HTTP header to every WCF call? 如果使用ASMX Web服務:Adding SOAP headers to ASMX service requests。
在這兩種情況下使用Accept-Language頭狀 「接受語言:zh」