Text aus StringContent Objekt auslesen

CopWorker

Erfahrenes Mitglied
Hallo zusammen,

ich schreibe grade an ´ner WebService Anwendung.

Da erzeuge ich ein StringContent Objekt welches ich dem HttpClient mit auf den Weg gebe.
In den StringContent Objekt sind dann die serialisierten Variablen aus einer Klasse drin.
Die Formatierung ist "application/json".

C#:
StringContent scJsonContent = new StringContent(JsonConvert.SerializeObject(clPiDro), Encoding.UTF8, "application/json");

//Den Inhalt der Serialisierung (byte[]) als string zurückgeben
string strTask = Encoding.UTF8.GetString(??????)

//Request vom Client abfeuern
thResult = clHttpClient.PostAsync("Tasks", scJsonContent);

Leider komme ich nicht an den Json Stream ran.
Ich dachte erst über "scJsonContent.content", das ist ein byte[] mit der richtigen Anzahl an Zeichen.
Da sehe ich im Debugger nur die Werte kann aber diese nicht auslesen.

Wer kann mir helfen.
Grüße von CopWorker
 

Spyke

Premium-User
Vorweg,
hatte schon Feierabend und hatte mal kurz reingeschaut.
Das es am Encoding liegt glaube ich jetzt nicht mehr, aber ich wollt den Post jetzt einfach mal so stehen lassen.
Weiterführende Recherchen führten zu HttpClientExtensions, hab des aber nie verwendet, konnte es nicht genau valuieren obs helfen könnt.

-------------

Durch kurz goggeln vermute ich mal das du jetzt doch Newtonsoft verwendest.
JsonConvert.SerializeObject Method (Object)

Beim PostAsync vermute ich mal das du den von HttpClient verwendest
HttpClient.PostAsync Methode (System.Net.Http)

Leider kann man zum Beispiel nicht beurteilen ob Tasks als Uri jetzt wirklich eine gültige Angabe ist.

StringContent selbst scheint erstmal ein HttpContent Objekt zu sein.
StringContent Klasse (System.Net.Http)

Die Newtonsoft Seite verweist weiter auf C# string
String Class (System)

String in C# werden in UTF-16 / Unicode gehalten.
Ev. als Encoding Unicode angeben (außer natürlich es wurde beim serialisieren UTF 8 angegeben).
Encoding.Unicode Eigenschaft (System.Text)


Ansonsten, ohne Fehlermeldung oder wo genau das Problem ist, ist alles nur Stochern im dunkeln.
 
Zuletzt bearbeitet:

CopWorker

Erfahrenes Mitglied
Hallo Spyke,

ich habe mich vielleicht nicht korrekt ausgedrückt.
Das "PostAsync" vom HttpClient funktioniert bestens.

Mein Ziel ist es den Json String aus dem StringContent Objekt auf eine
String Variable (strTask) zu schreiben um diesen in einem Textfeld im Dialogfenster anzuzeigen.

C#:
//Den Inhalt der Serialisierung (byte[]) als string zurückgeben
string strTask = Encoding.UTF8.GetString(scJsonContent.????????)

Vielleicht geht das ja auch gar nicht.
Trotzdem vielen Dank.
Gruß von CopWorker
 

Spyke

Premium-User
Beim JsonConverter die Methode SerialzeObject liefert dir schon den string, halt diesen Wert einfach in einem Feld.