【发布时间】:2012-04-17 20:17:20
【问题描述】:
没有显示方法的参数,它在浏览器中工作,即http://localhost:2617/UserService.svc/test
当我添加一个参数时,我也无法浏览它。
我有以下合同。
[ServiceContract]
public interface IUserService
{
[OperationContract]
[WebInvoke(Method="PUT",UriTemplate = "/tes/{name}",
BodyStyle=WebMessageBodyStyle.WrappedRequest)]
string Display(string name);
}
public string Display(string name)
{
return "Hello, your test data is ready"+name;
}
我正在尝试使用以下代码调用
string url = "http://localhost:2617/UserService.svc/test"; //newuser
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
string xmlDoc1 = "<Display xmlns=\"\"><name>shiva</name></Display>";
req.Method = "POST";
req.ContentType = "application/xml";
byte[] bytes = Encoding.UTF8.GetBytes(xmlDoc1);
req.GetRequestStream().Write(bytes, 0, bytes.Length);
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Stream responseStream = response.GetResponseStream();
var streamReader = new StreamReader(responseStream);
var soapResonseXmlDocument = new XmlDocument();
soapResonseXmlDocument.LoadXml(streamReader.ReadToEnd());
我无法为此获得输出。请帮助我。
【问题讨论】:
-
您在客户端的方法是“POST”,但在服务器端您有 Method="PUT" - 我原以为它们必须相同 - 尝试将您的服务器更改为 POST也许?
-
我也更改了 POST... 我尝试了不同的方式,但它不起作用..
-
你没有声明命名空间,所以命名空间应该是tempuri.org - 而不是空白。
-
您是否有任何理由希望名称成为查询字符串。我认为当您执行 POST/PUT 时,您不能有查询字符串参数。
标签: wcf wcf-data-services wcf-ria-services wcf-client wcf-rest-starter-kit