kon*_*g88 3 c# xml rest wcf http-headers
我创建了一个REST Web服务,它返回一个以xml格式传递的id.
但是,作为返回的xml的一部分,我想要包含自定义标头.我希望能够读取请求标头中的数据,并在响应中返回其中一些数据.
例如,如果请求包含Header1和Header2,我想返回Header1和Header2作为响应的一部分,以及一个新的头文件Header3.
我正在努力找出在哪里以及如何做到这一点,所以任何帮助将不胜感激.
我的代码:
RestServiceImpl.svc.cs:
namespace RestService
{
public class RestServiceImpl : IRestServiceImpl
{
#region iRestService Members
public string XMLData(string id)
{
return "You requested product " + id;
}
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
IRestServiceImpl.cs:
namespace RestService
{
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "xml/{id}")]
string XMLData(string id);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方式访问请求的标题.
System.ServiceModel.Web.WebOperationContext ctx = System.ServiceModel.Web.WebOperationContext.Current;
String request_header_value1 = ctx.IncomingRequest.Headers["Incoming_Req_Header_Key1"].ToString();
Run Code Online (Sandbox Code Playgroud)
这里Incoming_Req_Header_Key1
是传入标题的关键,如Incoming_Req_Header_Key1: Incoming_Req_Header_Value1
request_header_value1 = Incoming_Req_Header_Value1
.
作为回应,您可以使用上面的字符串并将更多结果附加到响应中,例如"CustomHeader3"(仅来自您的示例).如果你想将它们附加到响应头,你可以通过使用来实现ctx.OutgoingResponse.Headers
.
UPDATE
我使用了以下代码.
这是输出.
归档时间: |
|
查看次数: |
5435 次 |
最近记录: |