我在通过 HTTP Post 将数据发布到 WCF 服务并将重定向响应发送回用户时遇到问题。
我的服务是这样的:
[ServiceContract]
public interface IXXLeadServiceWCF
{
[WebInvoke(UriTemplate = "invoke")]
[OperationContract]
void CreateCallBack(Stream input);
}
操作合约接受如下网络调用:
[OperationBehavior]
public void CreateCallBack(Stream input)
{
StreamReader sr = new StreamReader(input);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s);
string firstName = qs["firstName"];
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Redirect;
WebOperationContext.Current.OutgoingResponse.Location = "http://www.test.com";
}
我正在像这样发布到服务:
<form method="post" action="http://wcf.xxx.com/LeadService/LeadService.svc">
<input name="firstName" id="firstName" class="txt_input" type="text" value="" />
</form>
我只从帖子中得到一个空白页。从 WCF 中的另一个域进行 HTTP 发布是否有限制?
如果有人能指出正确的方向,我将不胜感激。
谢谢
尼克
最佳答案
相信您的 HTML 表单需要编码为 multipart/form-data,是吗?另外,您的 WebInvoke 需要一种 POST 方法,对吗? UriTemplate 定义该方法将响应的 URL 及其作为参数接受的值。
编辑:WebInvoke(Method="POST")
关于wcf - 通过 HTTP 发布到 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431431/