Ich muss Webhook-Endpunkt erstellen, die JSON-Nachrichten konsumieren wird.
Nachrichten werden als x-www-form-urlencoded in Form senden:WebAPI Post JSON Zeichenfolge und Zuordnung zu Modell
key = json
Wert = { "USER_ID": "728.409.840", "Call_ID": "1.114.330", "answered_time": "2015.04.16 15.37.47"}
wie in PostMan gezeigt:
Anfrage wie folgt aussieht:
json =% 7B% 22user_Id% 22% 3A +% 22728409840% 22% 2C +% 22call_id% 22% 3A +% 221.114.330% 22% 2C% 22answered_time% 22% 3A +% 222015-04-16 + 15% 3A37% 3A47% 22% 7D
Um Werte von Anfrage als meine Klasse (Modell) erhalten muss ich temporäre erstellen Objekt einzelne String-Eigenschaft enthält:
public class Tmp
{
public string json { get; set; }
}
und Verfahren in meinem Controller, der diese Anforderung verbraucht:
[AllowAnonymous]
[Route("save_data")]
[HttpPost]
public IHttpActionResult SaveData(Tmp tmp)
{
JObject json2 = JObject.Parse(tmp.json);
var details = json2.ToObject<CallDetails>();
Debug.WriteLine(details);
//data processing
return Content(HttpStatusCode.OK, "OK", new TextMediaTypeFormatter(), "text/plain");
}
Wie Sie sehen können Tmp Klasse ist nutzlos.
Gibt es eine Möglichkeit Anforderungsdaten, da diese Klasse zu erhalten:
public class CallDetails
{
public string UserId { get; set; }
public string CallId { get; set; }
public string AnsweredTime { get; set; }
}
ich von IModelBinder
Klasse bewusst bin, aber bevor ich, ich würde gerne wissen, beginnen, wenn es einen einfacheren Weg.
Ich kann Web-Anfrage-Format nicht ändern, nach Format ich meine, das ist immer POST mit einzelnen Schlüssel - JSON
yhat hat JSON-Zeichenfolge als Wert.
warum können Sie nicht ändern, die Inhaltstyp zu Anwendung/Json, wenn es Json ist, dass Sie herumgehen? –
Ohne Bezug auf die Frage, aber ich bin gestört durch die Tatsache, dass Sie das 'async' Schlüsselwort verwenden, nur um' Task.Delay (1) ' –
@MatiasCicero Ich habe Code für die Verarbeitung von Daten und das Speichern zu entfernen Datenbank, ich mache alles async, also habe ich statt der Methodendeklaration einfach 'Task.Delay (1) 'hinzugefügt, sorry, wenn es verwirrend ist. – Misiu