Entwickler-Ecke

Netzwerk - Per TCP ein Json String senden


flohmaus - Fr 09.03.18 16:48
Titel: Per TCP ein Json String senden
Hallo Entwickler,

ich möchte einen String mit Header per json senden. Ich hbe keinen Plan.
Client-Server bekomme ich hin, einen Srtring enden auch.
Aber einen String mit Header per jason...

Das soll am Server ankommen:

Quelltext
1:
2:
3:
4:
5:
POST /Server HTTP/1.1
Content-Type: application/json
Content-Length: 59

{"cmd":"StartTask","data":"Sendemich","tid":"00002"}

Kann mir da bitte jemand helfen?

Viele Grüße

Pet

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Th69 - Fr 09.03.18 17:34

Mit welcher Komponente sendest du denn?
Und was ist dein konkretes Problem mit Json?


flohmaus - Fr 09.03.18 17:50

Hallo, Th69

im Prinzip habe ich keine Ahnung wie ich Json verwenden soll und meine Anwendung das senden kann:
so sende ich einen String..
Aber wie gebe ich einen Header mit.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
// clientSocket.Connect("127.0.0.1", 80);

clientSocket.Connect(txt_host.Text.ToString(), Convert.ToInt32(txt_port.Text));

string txt = listNameListe.Text.ToString();

                
string get_menu_request = "{\"cmd\":\"StartTask\",\"data\":\"" + txt + "\"}";

NetworkStream serverStream = clientSocket.GetStream();
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(get_menu_request);
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();

byte[] inStream = new byte[10025];
//  serverStream.Read(inStream, 0, (int)clientSocket.ReceiveBufferSize);
string _returndata = System.Text.Encoding.ASCII.GetString(inStream);


Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Th69 - Fr 09.03.18 18:02

Das ist ein ganz normaler HTTP [https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol]-Header. Entweder du verwendest eine passende Komponente (wie eine der WebRequest [https://msdn.microsoft.com/de-de/library/system.net.webrequest(v=vs.110).aspx]-Klassen, s. z.B. HTTP Post request with custom header [https://stackoverflow.com/questions/11141116/http-post-request-with-custom-header]) oder aber erzeugst den Text selber.
Und für Json kannst du z.B. Json.Net [https://www.newtonsoft.com/json] verwenden.