通过HttpWebRequest发送对象(REST服务)

时间:2012-11-02 10:06:22

标签: c# rest serializable

我有一个REST服务,它接受PUT请求的URL中的id。到目前为止,PUT请求看起来像这样:

string url = "http://localhost:3596/WidgetManager.svc/Widgets/" + TextBox3.Text;
WebRequest req = WebRequest.Create(url);
req.Method = "PUT";

using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
{
    StreamReader reader = new StreamReader(resp.GetResponseStream());
    Label4.Text = reader.ReadToEnd();
} 

但我还需要在请求中发送一个Widget对象。

Widget w = new Widget();
w.Name = "worked!!!";
w.CogCount = 1000;
w.SprocketSize = 2000;

我看到很多关于如何发送字符串的例子。但是像这样的物体呢?

1 个答案:

答案 0 :(得分:0)

您可以使用XML或JSON对其进行序列化。 如果它是一个如此小的对象,你可以编写自己的小方法,如

.toJSON() {
   return '{"Name":"' + this.name + '", "CogCount":' + this.CogCount + ', "SprocketSize":' + this.SprocketSize + '}';
}
//Output: '{"Name":"worked!!!", "CogCount":1000, "SprocketSize":2000}'

另一方面:C#提供了强大的(XML)序列化工具! 这里:http://www.codeproject.com/Articles/1789/Object-Serialization-using-C只是众多例子中的一个。

但是如果你使用PHP或类似的东西,JSON可能会更有趣。