CommentsPocket忘れないうちにメモ。いうライブラリ(クラス群)があります。ハマったのでメモします。このライブラリの使い方については、腐るほど出てくるので割愛。クラスを使って、画像をアップロードするコードで問題が発生しました。突っ込むだけの単純なプログラムなのですが、あるリクエストが成功すると、次のリクエストは必ず失敗します。失敗した場合は、次は必ず成功します。失敗した場合だけ通るデリゲートメソッド内の処理を穴があくほど確認したのですが、どうも特別なことをしていない。最後にパケットキャプチャでリクエストとレスポンスのヘッダを見てようやく解決しました。結論から言うと、リクエストを投げる前に以下の1行を追加します。setShouldAttemptPersistentConnection:NO];原因は、1個目のコネクションを破棄せずに、再利用していたためでした。元ソースには以下のように記述されているので、デフォルトはYESになります。shouldAttemptPersistentConnection;失敗する時のレスポンスヘッダを見ると、このようにKeep-Alive状態で返ってきます。max=100\r\n例えば、504が発生したりすると、次のリクエストは新たにコネクションを張るため認証に成功していたという訳。修正後のレスポンスヘッダは下記の通り。close\r\nこの問題は、相手先のサーバの設定にも依るようです。Keep-Alive状態でも問題なくアップロード出来る場合もありました。ググっても”Keep-Alive”まで検索ワードを入れないとなかなか出てこないので、丸1日ハマりました・・・。