Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过HttpClient发送和接收json_C#_Json_Asp.net Mvc_Dotnet Httpclient - Fatal编程技术网

C# 通过HttpClient发送和接收json

C# 通过HttpClient发送和接收json,c#,json,asp.net-mvc,dotnet-httpclient,C#,Json,Asp.net Mvc,Dotnet Httpclient,我正在设计两个网站,希望将json从第一个网站发送到第二个网站: // Action from the first website public async Task<ActionResult> Index() { using (var client = new HttpClient()) { var package = new Dictionary<string, string>() { { "Name", "Jul

我正在设计两个网站,希望将json从第一个网站发送到第二个网站:

// Action from the first website
public async Task<ActionResult> Index()
{
   using (var client = new HttpClient())
   {
      var package = new Dictionary<string, string>()
      {
         { "Name", "Julie" }
         { "Address", "UK" }
      };

      string json = JsonConvert.SerializeObject(package);

      var response = await client.PostAsync("thesecondsite.com/contacts/info", ???);
   }
}
你能告诉我如何获取json吗


p/s:很抱歉
给我代码
问题,我一直在谷歌搜索,但在我的案例中没有找到样本。我想在服务器端这样做,而不是在客户端使用ajax。

你需要告诉客户端你想发送什么。在本例中,它是一个JSON字符串负载

至于第二个网站,你有几种方式来接收它。但是,如果您只是像在form first站点中显示的那样发送JSON,那么这里有一种快速而肮脏的方法

[HttpPost]
public ActionResult Info(IDictionary<string,string> payload) {
   if(payload!=null) {
       var Name = payload["Name"];
       var Addredd = payload["Address"];
   }
}

框架应该能够通过绑定来重构对象。

一个小问题:为什么通过
IDictionary
发送字符串并接收字符串?隐式转换
string
IDictionary
?您将
字典
包转换为json
string
,以将其发送到其他站点。字符串就是你发送它的方式。当它到达目的地时,框架足够聪明,知道如何将其转换为其他类型<代码>词典
继承自
IDictionary
。您可以很容易地使用
字典
json字符串只是要发送的对象/数据的表示形式。
var content = new StringContent(json, Encoding.UTF8, "application/json");

var response = await client.PostAsync("thesecondsite.com/contacts/info", content);
[HttpPost]
public ActionResult Info(IDictionary<string,string> payload) {
   if(payload!=null) {
       var Name = payload["Name"];
       var Addredd = payload["Address"];
   }
}
class Contact {
    public string Name{get;set;}
    public string Address {get;set;}
}
...

[HttpPost]
public ActionResult Info(Contact payload) {
   if(contact!=null){
       var Name = contact.Name;
       var Address = contact.Address;
   }
}