Я построил программу, которая анализирует заголовок, и я хотел бы прочитать тело сообщения в случае получения POST.HTTP-протокол: конец тела сообщения
Для заголовков, я смог найти, когда заканчивается заголовок. У меня больше проблем для тела сообщения. Должен ли я смотреть в поле «Content-Length», чтобы узнать, когда прекратить чтение ввода? В моем текущем коде (ниже), это не остановится, пока я не удалю красным крестом (остановка страницы загрузки) в Firefox.
Вот код:
size_t n;
unsigned char newChar;
int index = 0;
int capacity = 50;
char *option = (char *) malloc(sizeof(char) * capacity);
while ((n = read(req->socket, &newChar, sizeof(newChar))) > 0) {
if (newChar == '\0' || newChar == '\n') break; // This is not working
if (index == capacity) {
capacity *= 2;
option = (char *) realloc(option, sizeof(char) * capacity);
assert(option != NULL);
}
option[index++] = newChar;
fprintf(stderr, "%c", newChar);
}
if (index == capacity) {
capacity *= 2;
option = (char *) realloc(option, sizeof(char) * capacity);
assert(option != NULL);
}
option[index] = '\0';
Правильный вход распечатана, но мне интересно, почему он не остановится, пока кнопка загрузки стоп не получить нажата. Я хотел бы знать, есть ли какое-либо другое решение или мне нужно использовать поле Content-Length в заголовке.
Большое спасибо,
Jary
Спасибо за всю эту информацию, я думаю, что мне нужно только реализовать один или два из этих случаев. Спасибо! – Jary