以匿名类型作为正文的简单 HTTP POST

gui*_*mie 2 c# json webclient anonymous-types dotnet-httpclient

我真的找不到一个可行的例子,也许是因为它根本不可能?

我想要一个 C# 匿名类型对象,如下所示:

var postBody = new
{
   friend = new 
   {
      name = "dave",
      last ="franz"
   },
   id = "12345",
   login = "mylogin" 
};
Run Code Online (Sandbox Code Playgroud)

并通过简单的 http POST 将其发布到我的 Web 服务,帖子正文如下:

{
   "friend" :
   {
      "name" : "dave",
      "last" : "franz"
   },
   "id" : "12345",
   "login" : "mylogin" 
};
Run Code Online (Sandbox Code Playgroud)

spe*_*der 5

使用Json.net非常简单。您可以使用 VS 中的 nuget 包管理器来获取它。

var postBody = new
{
   friend = new 
   {
      name = "dave",
      last ="franz"
   },
   id = "12345",
   login = "mylogin" 
};
var postString = Newtonsoft.Json.JsonConvert.SerializeObject(postBody);
using(var wc = new WebClient())
{
    wc.Headers.Add("Content-Type", "application/json");
    var responseString = wc.UploadString(serviceAddress, "POST", postString);
}
Run Code Online (Sandbox Code Playgroud)