問題タブ [nsurlconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - NSURLConnection sendSynchronousRequest: POST の使用時に失敗する
カスタム NSURLCache を使用して、特定の Web ページの呼び出しを傍受し、それらを動的に変更しています。内部 cachedResponseForRequest: リクエストを変更し、sendSynchronousRequest を使用して送信します。これは、フォームを送信しようとするまでは非常にうまく機能します。投稿データがある場合は失敗します。
HTTPBody を削除してリクエストを GET に設定すると、成功します。しかし、私はそれが POST で動作する必要があります。リクエストを非同期に送信すると、それも機能するため、同期リクエストが失敗する理由がわかりません。
ここに私のスタックトレースがあります:
日付/時刻: 2010-01-17 12:37:55.416 -0800
OS バージョン: iPhone OS 3.1.2 (7D11)
レポート バージョン: 104
例外の種類: EXC_BAD_ACCESS (SIGBUS)
例外コード: KERN_PROTECTION_FAILURE at 0x0000001cクラッシュした
スレッド: 2
Thread 2 Crashed:
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 ) +
Source30 10 CFNetwork0x01 86
11 CFNetwork 0x0000a7b2 MultiplexerSource::_perform(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 がクラッシュを引き起こしています。私が理解していないのは、その理由です。
nsurlconnection - 可変NSHTTPURLResponseまたはNSURLResponse
NSURLResponseの応答ヘッダーを変更する必要があります。これは可能ですか?
iphone - NSURLConnectionプロトコルはどこにありますか?
NSURLConnectionのドキュメントには、次のようなデリゲートメソッドがあると記載されています。
ただし、ドキュメントには、実装するデリゲートプロトコルについては記載されていません。さて、私はデリゲートのためのプロトコルがないだけだと思います、それですべてはただオプションですか?
ios - URLからファイルをダウンロードしてiPhoneのリソースに保存する
ファイル (つまり、sqlite データベース ファイル) をインターネットから iPhone アプリケーションにプログラムでダウンロードして、後でアプリケーション内で使用することはできますか?
を使用しようとしてNSURLConnection
いますが、ファイルを保存できません。
これが私が試しているサンプルコードです:
iphone - UITableViewが(メインスレッドでも)リロードされないのはなぜですか?
基本的に同じことを行う2つのプログラムがあります。XML フィードを読み取り、要素を解析します。どちらのプログラムも、非同期 NSURLConnection を使用してデータを取得し、新しいスレッドを生成して解析を処理するように設計されています。5 つのアイテムのバッチが解析されると、メイン スレッドにコールバックして UITableView をリロードします。
私の問題は、あるプログラムでは正常に機能しますが、他のプログラムでは機能しないことです。解析が実際にはバックグラウンド スレッドで行われていることはわかっています。また、[tableView reloadData] がメイン スレッドで実行されていることもわかっています。ただし、すべての解析が完了するまでテーブルをリロードしません。私は困惑しています。私が知る限り...両方のプログラムはまったく同じように構成されています。正しく動作しないアプリのコードを次に示します。
これを上から下に読むと、NSURLConnection がいつ終了するかがわかります。新しいスレッドを切り離して、parseFeedData を呼び出します。
did end 要素デリゲートでは、メイン スレッドを呼び出して更新を実行する前に、5 つの項目が解析されていることを確認します。
最後に、UIViewController デリゲート:
テーブルをリロードするためにビュー コントローラー デリゲートが起動したとき、およびテーブルの再構築中に cellForRowAtIndexPath が起動したときにログに書き込むと、ログは次のようになります。
parser:didParseBatch:
parser:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
parser:didParseBatch:
parser:didParseBatch:
parser:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
パーサー:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
パーサー:didParseBatch:
パーサー:didParseBatch:
パーサー:didParseBatch:
パーサー:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
明らかに、tableView は毎回指示してもリロードされません。
正しく動作するアプリのログは次のようになります。
parser:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
parser:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
parser:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView: cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
パーサー:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
パーサー:didParseBatch:
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
tableView:cellForRowAtIndexPath
cocoa - NSURL / NSURLRequest / NSURLConnectionはどのスキームを理解しますか?
Appleによれば、NSURLはRFC 1738(およびその他のいくつか)を使用して開発されています。
現在、RFC 1738は、WebURLにスキームとスキーム固有の部分があることのみを指定しています。
NSURLが理解できるすべてのスキームを知りたいです。また、NSURLRequestおよびNSURLConnection(いわゆる「URLローダーシステム」)で使用するため、これらが理解するすべてのスキームを知っている必要があります。
なんで?知りたいだけだから。Appleは、ドキュメントでそれについて詳しく説明していません。RFC1738に準拠していると言っているだけです。これは、多くのことを示しており、何も示していません。
php - NSURLConnectionの進行状況を取得するのに役立ちます
アプリはサーバーによって生成されたファイル(plist)をダウンロードしています。サーバーがファイルを生成するのに非常に時間がかかるので、進行状況を表示できるようにしたいと思います(おそらく、UIProgressViewを表示しますが、それは重要ではありません)。
ダウンロードしているファイルはリクエストの開始時にまだ作成されていないため、はわかりませんexpectedContentLength
。ただし、[PHP]スクリプト自体から進行状況の更新を提供する手段があります。私はob_flush()
これを行うためにファイルの各行に使用しています。これはブラウザで問題なく機能します。
しかし、アプリからリクエストを送信するとconnection:didReceiveData:
、スクリプトの実行が終了した後にのみ呼び出しが発生するため、あまり役に立ちません。
だから私の質問はこれに要約されます:
私のアプリからそのようなphpスクリプトの進行状況をどのように利用できますか?
サーバーに2つのリクエストを送信してもかまいません。最初のリクエストはファイルを生成し、その間に更新を提供し、もう1つは実際のファイルをダウンロードします。
リクエストが完了するまでNSUrlConnectionデリゲートメソッドは呼び出されないので、これらのメソッドをトリガーするためにスクリプトは何をする必要がありますか?
iphone - データの解析中にUIを描画するためのNSOperation?
皆さんが私を助けてくれることを願っています:)
メイン スレッドで NSOperation を作成し、それをキューに追加します。その操作は、NSURLConnection を使用してデータ サーバーに接続し、receivedData を保存して解析することです。
Operation.m
次に、この NSURL デリゲート メソッドで、サーバーから受け取ったばかりのデータを解析します。
Operation.m
データには、たとえば、到着時に描画するためにメイン スレッドに送信する screenItem、CellItem、TextItem などの項目があります。(itemTable が届いたら UITableView を作成し、itemWeb が届いたら UIWebView を作成します)
これを使用して、アイテムをメインスレッドに送信します。
Operation.m
次に、通知レシーバーで:
AppDelegate.m
私の問題は、NSOperation が終了するまで UI が描画されないことです。別のスレッドである NSOpertion はメイン スレッドをブロックしないと思いましたが、それが起こっていることだと思います。
この問題のヒントはありますか?
読んでくれてありがとう!
iphone - iphone SDK:NSURLConnectionを一時停止していますか?
私のアプリでは、ユーザーがサーバーからファイルをダウンロードできるようにしています。そのために、NSURLConnection を使用します。ユーザーがボタンをタップしてダウンロードを一時停止および再開できるようにしたいと考えています。cancel メソッドを呼び出してから新しい NSURLConnection を作成する以外に、これを行う方法が見つかりませんでした。NSURLConnection を一時停止するエレガントな方法はありますか?
ありがとう
iphone - NSURLConnection がデータを返さない
ここでかなり珍しい問題があります。以下のコードは正常に実行されており、データは正常にソースに送信されていますが、NSURLConnection トリガーは何も返しません。ログに記録される唯一の項目は、リクエストが送信された関数にあります。何かアイデアはありますか?