C# 通过HttpClient发送和接收json
我正在设计两个网站,希望将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
// 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
?您将字典
包转换为jsonstring
,以将其发送到其他站点。字符串就是你发送它的方式。当它到达目的地时,框架足够聪明,知道如何将其转换为其他类型<代码>词典
继承自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;
}
}