1
我使用CFNetwork的通過標題來閱讀,我想讀什麼類型的「傳輸編碼」我的要求是。它應該是「分塊的」Wireshark顯示「Transfer-Encoding:chunked」的正確請求,但使用CFNetwork的實際代碼將請求標題重新映射爲「Transfer-Encoding:Identity」CFNetwork的讀取HTTP頭傳輸編碼身份,但Wireshark的節目分塊
有人知道爲什麼會發生這種情況嗎?
這裏是我的代碼讀取頭:
if (r->_headers) {
CFStringRef header_return = CFStringCreateWithFormat (kCFAllocatorDefault, NULL, CFSTR("%@: %@\r\n"), key, value);
if (header_return) {
char temp[256];
CFStringGetCString(header_return, temp, sizeof(temp), kCFStringEncodingUTF8);
char *trans_enc = NULL;
if (pico_http_internal_native_header_get(temp, "Transfer-Encoding:", &trans_enc)) {
if (strcmp(trans_enc, "chunked") == 0) { // <-- This always says "Identity"
r->_chunked = true; // Never hit, but wireshark shows it would be correct
}
}
r->_headers(r->_context, temp, strlen(temp));
pico_cfrelease(header_return);
}
}
預先感謝任何幫助。
我剛剛遇到了同樣的問題。 Chrome顯示** chunked **,而Mac上的Safari顯示**身份**。還不明白。如果您發現有用的東西,請告訴我。 – Eye
嗨@Eye我添加了答案,我最終在我的代碼中使用。希望它有幫助。 –