假设我有 WCF Soap 服务,并且我正在将此库用于 SOAP 标头
http://wcfextras.codeplex.com/
例如,我的界面看起来像这样
[SoapHeader("HelperHeader", typeof(HelperHeader), Direction = SoapHeaderDirection.In)]
[OperationContract]
string GetData(string id);
////////
public string GetData(string id)
{
HelperHeader clientHeader=SoapHeaderHelper<HelperHeader>.GetInputHeader("HelperHeader");
if (clientHeader != null)
return id
}
在标头类中,我有 basicHttpbinding 的用户名和密码。现在我想将此方法" GetData
"用于REST服务。(我还有第二个webHttbinding)。我想对REST客户端使用此方法"GetData",现在我发现我可以使用属性WebGet和Webinvoke
[OperationContract]
[WebGet(UriTemplate = "testjson/{id}", ResponseFormat = WebMessageFormat.Json)]
string GetData(string id);
我的安静是我如何将一种方法"GetData"用于REST和SOAP服务以及用户名和密码。
当你创建一个 HttpRequest 时,你可以添加任何你想要的标题集合:
WebRequest request = WebRequest.Create("<URI>");
request.Headers.Add("username", "<UserName>");
request.Headers.Add("password", "<Pass>");
request.GetResponse();
在服务实现中,可以通过调用此属性轻松访问标头集合WebOperationContext.Current.IncomingRequest.Headers