我想从外部api接收数据到我的asp.net mvc项目,我想知道如何编写代码以从外部api接收json数据到我的控制器(webhook):
这是数据:
{
"event": "tracking_update",
"msg": {
"id": "53aa94fc55ece21582000004",
"tracking_number": "906587618687",
"title": "906587618687",
"origin_country_iso3": null,
"destination_country_iso3": null,
"shipment_package_count": 0,
"active": false,
"order_id": null,
"order_id_path": null,
"customer_name": null,
"source": "web",
"emails": [],
"custom_fields": {},
"tag": "Delivered",
"tracked_count": 1,
"expected_delivery": null,
"signed_by": "D Johnson",
"shipment_type": null,
"tracking_account_number": null,
"tracking_postal_code": "DA15BU",
"tracking_ship_date": null,
"created_at": "2014-06-25T09:23:08+00:00",
"updated_at": "2014-06-25T09:23:08+00:00",
"slug": "dx",
"unique_token": "xk7LesjIgg",
"checkpoints": [{
"country_name": null,
"country_iso3": null,
"state": null,
"city": null,
"zip": null,
"message": "Signed For by: D Johnson",
"coordinates": [],
"tag": "Delivered",
"created_at": "2014-06-25T09:23:11+00:00",
"checkpoint_time": "2014-05-02T16:24:38",
"slug": "dx"
}]
},
"ts": 1403688191
}
答案 0 :(得分:1)
这是总代码:
[HttpPost]
public ActionResult Index()
{
string FileContent = "";
using (StreamReader sr = new StreamReader(Request.InputStream))
{
FileContent = sr.ReadToEnd();
}
AfterShip model = JsonConvert.DeserializeObject<AfterShip>(FileContent);
}
答案 1 :(得分:0)
试试这个 - 如果需要,您需要添加授权标头:
using (var httpClient = new HttpClient())
{
try
{
var response = await httpClient.GetAsync(url);
if (response.StatusCode == HttpStatusCode.OK)
{
var responseContent = await response.Content.ReadAsStringAsync();
ObjectThatRepresentsYourJson objectThatRepresentsYourJson = JsonConvert.DeserializeObject<ObjectThatRepresentsYourJson>(responseContent);
}
}
}
答案 2 :(得分:0)
您可以将其作为输入流
进行访问string FileContent = "";
using (StreamReader sr = new StreamReader(Request.InputStream))
{
FileContent = sr.ReadToEnd();
}
并序列化收到的内容。