gpt4 book ai didi

c# - WCF REST Web 服务和 HTTP header

转载 作者:数据小太阳 更新时间:2023-10-29 02:20:31 25 4
gpt4 key购买 nike

我创建了一个 REST 网络服务,它返回一个以 xml 格式传递的简单 ID。

但是,作为返回的 xml 的一部分,我想包含自定义 header 。我希望能够读取请求 header 中的数据并在响应中返回其中的一些数据。

例如,如果请求包含 Header1 和 Header2,我想返回 Header1 和 Header2 作为响应的一部分,以及一个新的 header Header3。

我正在努力弄清楚在哪里以及如何做到这一点,因此我们将不胜感激。

我的代码:

RestServiceImpl.svc.cs:

namespace RestService
{
public class RestServiceImpl : IRestServiceImpl
{
#region iRestService Members

public string XMLData(string id)
{
return "You requested product " + id;
}

#endregion
}
}

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);

}
}

最佳答案

您可以使用以下方法访问请求的 header 。

System.ServiceModel.Web.WebOperationContext ctx = System.ServiceModel.Web.WebOperationContext.Current;
String request_header_value1 = ctx.IncomingRequest.Headers["Incoming_Req_Header_Key1"].ToString();

这里,Incoming_Req_Header_Key1是incoming header的key,如Incoming_Req_Header_Key1: Incoming_Req_Header_Value1,所以request_header_value1 = Incoming_Req_Header_Value1

作为响应,您可以使用上面的字符串并将更多结果附加到响应中,例如“CustomHeader3”(只是您的示例)。如果您想将它们附加到响应 header ,您可以使用 ctx.OutgoingResponse.Headers 来实现。

更新

我使用了以下代码。

enter image description here

这是输出。

enter image description here

关于c# - WCF REST Web 服务和 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com