我構建了一個解析頭文件的程序,並且我希望在收到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 2010-10-26 02:24:15