我有一个由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请求标头而不是消息标题
谢谢!
答案 0 :(得分:23)
最简单的方法是以下列方式使用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();
}
取自post
答案 1 :(得分:-2)
创建一个类型为HttpWebRequest的新WebRequest对象。设置标题并获得响应。
WebRequest req = HttpWebRequest.Create("myURL") as HttpWebRequest;
req.Headers.Add("AdminGUID", "value");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
有关webrequest的更深入示例,请参阅此page