В этом выпуске мне было очень трудно понять, почему.Проблема заключается в самом ASIHTTPRequest (iOS), а не в коде rails.
Короче говоря, проблема связана с использованием постоянного соединения для каждого запроса, отправляемого ASIHTTPRequest..
Хотя это хорошо для запросов GET, большинство реализаций сервера не позволяет использовать постоянное соединение с запросом POST.
У меня не было времени глубоко исследовать его на сервере.но я думаю, что проблема заключается в заголовке 100-Continue, который должен быть отправлен (а что нет) с запросом, к которому прикреплено тело (следовательно, PUT / POST).Если вы хотите глубже взглянуть на то, о чем я говорю, прочитайте спецификацию: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html
Так что постоянное соединение, используемое ASIHTTPRequest, ожидает отправки ответа 100, чтоникогда не отправляется.так что время ожидания истекает.
Исправление - установить для persistentConnection значение NO с вашими запросами на публикацию, как показано ниже:
ASIHTTPRequest *req = [ASIHTTPRequest requestWithURL:url];
req.shouldAttemptPersistentConnection = NO;