Mohammad Khir Alsaid
Mohammad Khir Alsaid

Reputation: 223

Webhook in Asp.net MVC

I want to receive data from External api to my asp.net mvc project and i want to know how to write code to receive json data from external api to my contrller (webhook):

this is the data:

{

    "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
}

Upvotes: 2

Views: 1206

Answers (3)

Mohammad Khir Alsaid
Mohammad Khir Alsaid

Reputation: 223

This is total code :

[HttpPost]
    public ActionResult Index()
    {
        string FileContent = "";
        using (StreamReader sr = new StreamReader(Request.InputStream))
        {
            FileContent = sr.ReadToEnd();
        }
         AfterShip model = JsonConvert.DeserializeObject<AfterShip>(FileContent);

     }

Upvotes: 3

Karthikeyan
Karthikeyan

Reputation: 347

You can access it as an input stream

string FileContent = "";
using (StreamReader sr = new StreamReader(Request.InputStream))
{
   FileContent = sr.ReadToEnd();
}

And serialize the content received.

Upvotes: 1

Percy
Percy

Reputation: 3125

Try this - you'll need to add authorization headers if required:

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);
        }
    }
}

Upvotes: 1

Related Questions