Bonjour,
J'ai crée un serveur qui reçoit des messages d'alarme.
Mon code fonctionne correctement et je peux visualiser dans la console mon message
et voici un exemple du message recu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if ((read_size = recv(sock , client_message , sizeof client_message - 1 , MSG_WAITALL)) < 0) { perror("recv()"); } client_message[read_size] = '\0'; printf("taille %d\n", read_size); printf("message %s\n", client_message);
Je souhaiterai extraire les valeurs du json ex: ipAddressPOST / HTTP/1.1
Content-Type: multipart/form-data; boundary=boundary
Host: 192.168.1.100
Connection: close
Content-Length: 648042
--boundary
Content-Disposition: form-data; name="alarmResult"
Content-Type: application/json
Content-Length: 3368
{
"ipAddress": "192.168.1.64",
"portNo": 8080,
"protocol": "HTTP",
"macAddress": "58:50:ed:5b:69:dc",
"channelID": 1,
"dateTime": "2020-12-13T06:59:25+08:00",
"activePostCount": 1,
"isDataRetransmission": false,
"eventState": "active",
"channelName": "Camera 01",
"eventType": "alarmResult",
"eventDescription": "alarmResult"
}
J'ai donc utilisé json-c et modifié mon code
Malheureusement ipAddress me renvoie toujours NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if ((read_size = recv(sock , client_message , sizeof client_message - 1 , MSG_WAITALL)) < 0) { perror("recv()"); } client_message[read_size] = '\0'; printf("taille %d\n", read_size); printf("message %s\n", client_message); struct json_object *obj = json_tokener_parse(client_message); struct json_object *json; json_object_object_get_ex(obj, "ipAddress", &json); printf("ipAddress : %s\n", json_object_get_string(json));
Merci pour votre aide
Partager