Posten Sie JSON auf einem Server in C#
-
Verwenden Sie
HttpWebRequest
, um JSON an einen Server inC#
zu senden -
Verwenden Sie
new HttpClient()
, um JSON auf einem Server inC#
zu posten
Was ist also JSON? JSON steht für Javascript Object Notation. Es folgt einer Struktur, die der Zuordnung eines Werts zu einem Schlüssel in eckigen Klammern ähnelt.
Heute lernen wir, wie man ein JSON in C# an einen Server sendet.
Verwenden Sie HttpWebRequest
, um JSON an einen Server in C#
zu senden
Um die Webdienste zu verwenden, müssen Sie Ihre IDE in .NET ASP booten, einem Webframework mit C#-Unterstützung im Backend.
Innerhalb der gestarteten ASP.NET-Anwendung müssen Sie nun eine neue ASPX-Seite hinzufügen, um eine Schaltfläche zum Posten von JSON als Text und ein weiteres Label zum Anzeigen des geposteten JSON-Texts hinzuzufügen.
TASTE:
ETIKETT:
Die Webseite wird wie folgt angezeigt:
Wir werden JSON auf dieser Webseite posten, sobald auf die Schaltfläche geklickt wird. Der JSON wird im Textfeld unter der Schaltfläche angezeigt.
Lassen Sie uns nun fortfahren und innerhalb der Schaltflächenklickfunktion die Anfrage zum Senden der Daten erstellen und dann den Statuscode lesen, der uns mitteilt, ob die Anfrage erfolgreich war oder nicht.
var url = "https://reqres.in/api/users";
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Accept = "application/json";
httpRequest.ContentType = "application/json";
var data =
@"{
""name"": ""morpheus"",
""job"": ""leader"",
""id"": ""264"",
""createdAt"": ""2022-07-09T07:33:55.681Z""
}";
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) {
streamWriter.Write(data);
}
var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
var result = streamReader.ReadToEnd();
}
this.jsontext.Text = httpResponse.StatusCode.ToString();
Hier haben wir die URL verwendet, eine kostenlose URL zum Posten und Abrufen von Daten. Das Bild für den Statuscode nach dem Vorgang ist unten dargestellt:
AUSGANG:
Für die URL erstellen Sie die Variable httpRequest
. Dann tendieren Sie dazu, die Anforderung Akzeptieren
zu definieren, die auf JSON gesetzt ist. Sobald der streamWriter
die Daten auf den Server schreibt, wird der aus der Antwort abgerufene StatusCode
in den Text der zuvor definierten jsontext
-Variable eingefügt.
Falls Sie JSON nicht selbst erstellen möchten, können Sie den Serializer
wie folgt verwenden:
string json = new JavaScriptSerializer().Serialize(
new { name = "morpheus", job = "leader", id = "264", createdAt = "2022-07-09T07:33:55.681Z" });
Und dann schreiben Sie es wie folgt:
streamWriter.Write(json);
Um dies zu implementieren, müssen Sie jedoch den Namensraum System.Web.Script.Serialization
einbinden.
Der vollständige Code ist unten dargestellt:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication2 {
public partial class WebForm1 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {}
protected void json_Click(object sender, EventArgs e) {
var url = "https://reqres.in/api/users";
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Accept = "application/json";
httpRequest.ContentType = "application/json";
// HANDCRAFTED JSON
var data =
@"{
""name"": ""morpheus"",
""job"": ""leader"",
""id"": ""264"",
""createdAt"": ""2022-07-09T07:33:55.681Z""
}";
// SERIALIZED JSON
string json =
new JavaScriptSerializer().Serialize(new { name = "morpheus", job = "leader", id = "264",
createdAt = "2022-07-09T07:33:55.681Z" });
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) {
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
var result = streamReader.ReadToEnd();
}
this.jsontext.Text = httpResponse.StatusCode.ToString();
}
}
}
Verwenden Sie new HttpClient()
, um JSON auf einem Server in C#
zu posten
Wir können ganz einfach den folgenden Code verwenden, um JSON an den Server zu senden:
using (var client = new HttpClient()) {
var result = client.PostAsync(url, new StringContent(json, Encoding.UTF8, "application/json"));
}
Dieser verwendet CLIENT.POSTASYNC()
, um die POST
-Anfrage zu stellen. Der vollständige Code ist unten dargestellt:
protected void json_Click(object sender, EventArgs e) {
var url = "https://reqres.in/api/users";
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Method = "POST";
httpRequest.Accept = "application/json";
httpRequest.ContentType = "application/json";
// HANDCRAFTED JSON
var data =
@"{
""name"": ""morpheus"",
""job"": ""leader"",
""id"": ""264"",
""createdAt"": ""2022-07-09T07:33:55.681Z""
}";
// SERIALIZED JSON
string json =
new JavaScriptSerializer().Serialize(new { name = "morpheus", job = "leader", id = "264",
createdAt = "2022-07-09T07:33:55.681Z" });
using (var client = new HttpClient()) {
var result = client.PostAsync(url, new StringContent(json, Encoding.UTF8, "application/json"));
}
// using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream()))
//{
// streamWriter.Write(json);
// }
var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
var result = streamReader.ReadToEnd();
}
this.jsontext.Text = httpResponse.StatusCode.ToString();
}
Ersetzen Sie die oben angegebene Funktion und sehen Sie sich dann die Ergebnisse an. Der Code wird jetzt perfekt funktionieren.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHubVerwandter Artikel - Csharp JSON
- C# Parsen JSON
- C# Konvertieren des Objekts in eine JSON-Zeichenkette
- JSON in C# in Datei schreiben
- JSON mit C# deserialisieren
- Konvertieren JSON-String in ein C#-Objekt