Webhook在Asp.net MVC中

时间:2016-07-25 10:37:40

标签: c# asp.net-mvc asp.net-web-api

我想从外部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
}
  • 如何在asp.net项目中作为webhook从另一个web api接收json数据

3 个答案:

答案 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();
}

并序列化收到的内容。