在WCF REST模板40中使用post方法 - JSON

时间:2012-03-13 13:18:50

标签: json wcf rest

由于缺乏有关如何以JSON形式将数据发布到WCF REST方法的信息,我感到非常沮丧。我几乎尝试了所有的东西。 Google此时正在返回紫色链接......

我正在寻找的是一种将JSON对象发送到我的方法的方法,以便它可以为我搁置所有数据。我目前正在努力工作的是:

方法标题:

[WebInvoke(Method = "POST", UriTemplate = "role/new", ResponseFormat = WebMessageFormat.Json)]
void AddNewRole(Stream streamdata)

来自客户端应用程序的逻辑:

string json = JsonConvert.SerializeObject(role);
byte[] buffer = Encoding.UTF8.GetBytes(json);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://IP/InfoService/role/new");
request.Method = "POST";
request.Credentials = new NetworkCredential("", "");
request.ContentType = "application/x-www-form-urlencoded";
using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
{
     sw.Write(json);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
     MessageBox.Show(sr.ReadToEnd());
}

使用此方法,我从服务获得一个接受的响应,但它是一个空白响应,并且没有新数据添加到数据库。当然,我的数据库更新方法可能存在问题。无论哪种方式,任何人都可以帮我弄清楚我哪里出错了吗?

编辑:我现在让小提琴能够在测试客户端上进行测试,并且正如预期的那样,我的数据库查询存在问题。我会很快回复。

EDIT2:最后解决了数据库问题,我现在已经通过fiddler成功调用了。

EDIT3:现在正在工作,感谢没有人。

1 个答案:

答案 0 :(得分:0)

上面的代码已经过编辑,有效。