2011-03-25 3 views
2

Je rencontre des difficultés pour envoyer des données à un service WCF via HTTP Post et envoyer une réponse de redirection à l'utilisateur.Publication sur le service WCF via HTTP

Mon service ressemble à ceci:

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

Avec le contrat d'exploitation d'accepter un invokation Web comme suit:

[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"; 
} 

Et je signale au service comme celui-ci:

<form method="post" action="http://wcf.xxx.com/LeadService/LeadService.svc"> 
<input name="firstName" id="firstName" class="txt_input" type="text" value="" /> 
</form> 

Je reçois seulement une page vierge de la poste. Existe-t-il des restrictions sur la publication HTTP à partir d'un autre domaine dans WCF?

Si quelqu'un pouvait me diriger dans la bonne direction, je l'apprécierais vraiment.

Merci

Nick

Répondre

0

Croyez votre formulaire HTML doit coder multipart/form-data, oui? En outre, votre WebInvoke a besoin d'une méthode de POST, n'est-ce pas? UriTemplate définit l'URL à laquelle la méthode répondra et les valeurs qu'elle accepte en tant que paramètres.

EDIT: WebInvoke (méthode = "POST")

+0

Merci pour la réponse. J'ai enveloppé mon formulaire dans multipart/form-data mais serais-tu capable de conseiller l'annotation correcte pour que la méthode webinvokve accepte une requête POST? Il y a beaucoup de conseils contradictoires sur le net. Merci – Nick