11

我有一个由 AJAX 和 C# 应用程序使用的 WCF 服务,
我需要通过 HTTP 请求标头发送一个参数。

在我的 AJAX 上,我添加了以下内容并且它有效:

$.ajax({
    type: "POST",
    url: this.tenantAdminService,
    beforeSend: function (req, methodName)
    {
        req.setRequestHeader("AdminGUID", adminGuid);
    }

在 WCF 服务器端,我执行以下操作来获取标头:

string adminGUID = System.Web.HttpContext.Current.Request.Headers["AdminGUID"];

什么是 C# 等价物?如何发送也将由我的 WCF 服务器使用的 http 请求标头?

我需要将参数添加到 HTTP 请求标头而不是消息标头,

谢谢!

4

2 回答 2

27

最简单的方法是通过以下方式使用WebOperationContext :

Service1Client serviceClient = new Service1Client();
using (new System.ServiceModel.OperationContextScope((System.ServiceModel.IClientChannel)serviceClient.InnerChannel))
{
    System.ServiceModel.Web.WebOperationContext.Current.OutgoingRequest.Headers.Add("AdminGUID", "someGUID");
    serviceClient.GetData();
}

取自这篇文章

于 2012-12-13T10:56:22.597 回答
-2

创建一个新的 HttpWebRequest 类型的 WebRequest 对象。设置标题并获得响应。

WebRequest req = HttpWebRequest.Create("myURL") as HttpWebRequest;
req.Headers.Add("AdminGUID", "value");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

有关 webrequest 的更深入示例,请参阅此页面

于 2012-12-13T09:12:56.063 回答