#include <string.h>
#include <stdio.h>
#include "pico/stdlib.h"
int main() {
stdio_init_all();
char http_message[] = {
"PUT /api/v1.0/pc?code=status HTTP/1.1\r\n"
"Host: api.int\r\n"
"User-Agent: curl/7.68.0\r\n"
"Accept: */*\r\n"
"\r\n"
};
char *message_body = http_message;
char *delim = " ?=&\r";
char next_delim;
char current_delim = '\0';
char *token;
while(1) {
if (*message_body == '\0') { break; }
token = message_body;
message_body = strpbrk(message_body, delim);
if (message_body == NULL) { break; }
next_delim = *message_body;
*message_body = '\0';
switch(current_delim) {
case '\0':
printf("Method\t\t%s\n", token);
break;
case ' ':
if (next_delim != '\r') {
printf("Target\t\t%s\n", token);
} else {
printf("Version\t\t%s\n", token);
}
break;
case '?':
case '&':
printf("Key\t\t%s\n", token);
break;
case '=':
printf("Value\t\t%s\n", token);
break;
}
current_delim = next_delim;
message_body++;
// Carriage return indicates we have reached the end of the first line of message body
if (current_delim == '\r') { break; }
}
return 0;
}