Я использую пользовательский NSURLCache для перехвата вызовов для определенных веб-страниц с целью их динамического изменения. Внутри cachedResponseForRequest: я изменяю запрос, затем отправляю его, используя sendSynchronousRequest. Это работает очень хорошо, пока вы не попытаетесь отправить форму. Если есть почтовые данные, это терпит неудачу.
Если я удаляю HTTPBody и устанавливаю запрос GET, он успешно выполняется. Но мне нужно, чтобы он работал с POST. Если я отправляю запрос асинхронно, он также работает, поэтому я не могу понять, почему синхронный запрос не выполняется.
Вот мой след стека:
Дата / Время: 2010-01-17 12: 37: 55,416 -0800
Версия ОС: iPhone OS 3.1.2 (7D11)
Версия отчета: 104
Тип исключения: EXC_BAD_ACCESS (SIGBUS)
Коды исключений: KERN_PROTECTION_FAILURE в 0x0000001c
Разбитая нить: 2
Тема 2 Сбой:
0 CFNetwork 0x0000b4e4 HTTPMessage :: copyHeaderFieldValue (__ CFString const *) + 18
1 CFNetwork 0x0000b4c8 CFHTTPMessageCopyHeaderFieldValue + 16
2 CFNetwork 0x0000e022 HTTPProtocol :: createStream () + 328
3 CFNetwork 0x0000de8a HTTPProtocol :: createAndOpenStream () + 458
4 CFNetwork 0x0000cba2 HTTPProtocol :: startLoad () + 278
5 CFNetwork 0x0000c8da URLConnectionLoader :: loaderScheduleOriginLoad (_CFURLRequest const *) + 216
6 CFNetwork 0x0000c77c URLConnectionLoader :: loaderScheduleLoad (_CFURLRequest const *) + 280
7 CFNetwork 0x0000c5e6 URLConnectionLoader :: LoaderConnectionEventQueue :: processAllEventsAndConsumePayload (XConnectionEventInfo , long) + 134
8 CFNetwork 0x0000c53a URLConnectionLoader :: processEvents () + 60
9 CFNetwork 0x0000a892 URLConnection :: multiplexerClientPerform (RunLoopMultiplexer ) + 30
10 CFNetwork 0x0000a812 MultiplexerSource :: execute () + 86
11 CFNetwork 0x0000a7b2 MultiplexerSource :: _ execute (void *) + 2
12 CoreFoundation 0x000573a0 CFRunLoopRunSpecific + 1908
13 CoreFoundation 0x00056c18 CFRunLoopRunInMode + 44
14 Foundation 0x0005a998 + [NSURLConnection (NSURLConnectionReallyInternal) _resourceLoadLoop:] + 172
15 Foundation 0x00053ac6 - [NSThread main] + 42
16 Foundation 0x00001d0e __NSThread__main__ + 852
17 libSystem.B.dylib 0x0002b7b0 _pthread_body + 20
Как видите, copyHeaderFieldValue вызывает сбой. Чего я не понимаю, так это почему.