1
我已经成功地安装了以下WCF合同作为一种服务:调用一个WCF WebInvoke方法与HttpWebRequest的POST和映射参数正确
[WebInvoke(Method = "POST", UriTemplate = "submit/{apiKey}", ResponseFormat = WebMessageFormat.Xml)]
[OperationContract]
DataServiceResult Submit(string apiKey, string email);
我试图把这个使用的HttpWebRequest
string url = "http://localhost:51462/Api.svc/web/submit/key";
string formatString = "[email protected]";
byte[] postData = Encoding.ASCII.GetBytes(formatString);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.Referer = url;
request.KeepAlive = false;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
System.IO.Stream outputStream = request.GetRequestStream();
request.AllowAutoRedirect = true;
outputStream.Write(postData, 0, postData.Length);
outputStream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream responseStream = response.GetResponseStream();
StreamReader reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
string srcString = reader.ReadToEnd();
当我运行这个代码时,apikey被成功映射。问题是我不确定如何将电子邮件参数映射到当前为空的提交方法。
另一个说明,在我的应用程序中,我传递了10-15个参数作为字符串,因此向UriTemplate添加电子邮件不是我正在寻找的答案。