【发布时间】:2025-12-01 20:00:02
【问题描述】:
我想为我的 WCF SOAP 服务添加一个 HTTP 标头。我的最终目标是通过这个 HTTP 标头发送 API 密钥。
下面是我的代码:
[ServiceBehavior(Namespace = "http://****.com/**/1.1")]
public class MyWcfSvc : IMyVerify
{
const int MaxResponseSize = 0xffff; // 64K max size - Normally it will be MUCH smaller than this
private static readonly NLogLogger Logger;
static MyWcfSvc()
{
Logger = new NLogLogger();
// Add an HTTP Header to an outgoing request
HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
requestMessage.Headers["User-Auth"] = "MyHttpHeaderValue";
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
}
}
我在 HTTP 请求标头下看不到 User-Auth 标头。
我也尝试了另一种方法。
public AnalyzeResponse Analyze(AnalyzeRequest analyzeRequest)
{
HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
requestMessage.Headers["User-Auth"] = "MyHttpHeaderValue";
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
.
.
. Rest of the service implementation
.
.
.
}
但是,我仍然没有在请求消息中看到任何 HTTP 标头信息。我正在使用 SOAP UI 发送请求并查看响应。
我应该怎么做?我是否应该对与课程相关的服务进行更改?或者我需要对web.config 文件进行一些更改?
【问题讨论】:
-
我跟着那个,但它不起作用,这就是我问这个问题的原因。
-
不确定你想要完成什么......当你的服务发送它时在响应中输出一个HTTP头,或者当有人调用服务时,你想要传递和HTTP头,或者什么还有吗?
-
我建议您包括:服务器代码、客户端/消费代码、预期结果和实际结果(可能使用日志)...您的问题目前令人困惑。
标签: c# web-services wcf soap api-key