2011-03-25 137 views
2

我无法通过HTTP发布数据到WCF服务,并向用户发送重定向响应。通过HTTP发布到WCF服务

我的服务是这样的:

[ServiceContract] 
public interface IXXLeadServiceWCF 
{ 
[WebInvoke(UriTemplate = "invoke")] 
[OperationContract] 
void CreateCallBack(Stream input); 
} 

随着经营合同接受网络invokation如下:

[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发布有限制吗?

如果有人能指引我正确的方向,我会非常感激。

感谢

尼克

回答

0

相信你的HTML表单需要编码的multipart/form-data的,是吗?另外,你的WebInvoke需要一个POST方法,对吗? UriTemplate定义方法将响应的URL以及它作为参数接受的值。

编辑:WebInvoke(Method =“POST”)

+0

感谢您的回应。我用多部分/表单数据封装了我的表单,但是您是否能够建议正确的注释以便webinvokve方法接受POST请求?网上有很多相互矛盾的建议。谢谢 – Nick 2011-03-25 11:31:55