在C語言中,發送JSON數據可以使用HTTP協議。HTTP協議是一個超文本傳輸協議,通常用于客戶端和服務器之間的通信,例如在Web瀏覽器和網站服務器之間。使用HTTP協議發送JSON數據可以用于數據交換、API調用等。
#include#include #include #include #include int main() { struct sockaddr_in server_addr; int socket_fd, status; char *message = "{\"name\": \"jack\", \"age\": 20}"; //創建 Socket socket_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); if (socket_fd == -1) { printf("Socket 創建失敗!\n"); exit(EXIT_FAILURE); } //設置 server 的 IP 地址和端口號 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(8080); inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr); //連接 server status = connect(socket_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)); if (status == -1) { printf("連接失敗!\n"); exit(EXIT_FAILURE); } //發送 HTTP 頭信息和 JSON 數據 char header[1024]; sprintf(header, "POST /api HTTP/1.1\r\n" "Host: 127.0.0.1:8080\r\n" "Content-Type: application/json;charset=UTF-8\r\n" "Content-Length: %ld\r\n\r\n", strlen(message)); send(socket_fd, header, strlen(header), 0); send(socket_fd, message, strlen(message), 0); //接收 server 返回的數據 char buffer[1024]; size_t recv_size = recv(socket_fd, buffer, sizeof(buffer), 0); buffer[recv_size] = '\0'; printf("%s\n", buffer); //關閉 Socket shutdown(socket_fd, SHUT_RDWR); close(socket_fd); return 0; }
在上面的代碼中,我們使用了 Socket 編程來連接服務器并發送 JSON 數據。
首先,我們創建 Socket,并設置服務器的 IP 地址和端口號。然后,我們連接服務器,并發送 HTTP 頭信息和 JSON 數據。最后,我們接收服務器返回的數據,并關閉 Socket。