Saya memiliki pengontrol Asp.Net Web Api v2 berikut - hanya sebagai contoh dasar:

    [HttpPost]
    public IHttpActionResult TestPost([FromBody]string value)
    {       
       l.TestNotify(value, "test");     
       return Ok();
    }

Ketika saya meneruskan permintaan JSON ke pengontrol dengan "Halo dunia" sederhana - saya bisa mendapatkan nilainya tanpa masalah. Ketika saya menggunakan JSON yang lebih rumit, parameter nilai kembali kosong.

Saya telah menguji JSON yang sama dengan program pengujian menggunakan restsharp dan berfungsi dengan baik.

Berikut permintaannya:

Content-Type    application/json; charset=utf-8
Accept-Encoding gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept  */*
Content-Length  743

Berikut adalah Cuplikan Json:

{
  "ticket": {
    "url": "",
    "id": "",
    "external_id": null,
    "FromEmail": "cody",
    "via": "Mail",
  }
}

Dugaan saya adalah ada hubungannya antara perbedaan permintaan tetapi tidak ada yang jelas muncul dalam pikiran. Metode lain untuk membaca konten permintaan atau penyesuaian pemahaman saya tentang permintaan http di atas akan dihargai.

2
Cody Popham 18 November 2017, 13:12

1 menjawab

Jawaban Terbaik

Jangan gunakan string, lebih baik buat kelas untuk tipe input.

Jadi ini adalah bagaimana kelas akan terlihat seperti:

public class Ticket
{
    public string url { get; set; }
    public string id { get; set; }
    public object external_id { get; set; }
    public string FromEmail { get; set; }
    public string via { get; set; }
}

public class TicketRoot
{
    public Ticket ticket { get; set; }
}

Kemudian gunakan tipe TicketRoot alih-alih string dari pengontrol Anda.

1
Botond Botos 18 November 2017, 10:30