問題タブ [nsurlsessiontask]

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.

0 投票する
1 に答える
6634 参照

ios - AFHTTPSessionManager を使用して各要求/応答をログに記録するにはどうすればよいですか?

プロジェクトを AFNetworking 2.0 に移行しています。AFNetworking 1.0 を使用しているとき、各要求/応答をコンソールに記録するコードを書きました。コードは次のとおりです。

私は AFNetworking 2.0 を使用して同じことをしようとしています。これは、私の理解では、のNSURLSessionDataTask代わりにオブジェクトを使用することを意味しますAFHTTPRequestOperation。これが私のショットです。

メソッドは各dataTaskWithRequest:completionHandler呼び出しを正常にインターセプトしているため、オーバーライドするのに適切なメソッドだと思いますが、completionHandler でタスクをログに記録しようとすると、tasknil になります。したがって、コンソールに null が出力されます。ただし、そのメソッドからは適切なタスク オブジェクトが返されます。ここで何が起こっているのですか?各呼び出しの要求/応答を適切にログに記録するにはどうすればよいですか?

0 投票する
1 に答える
38 参照

ios - iOS ユーザーが積極的にビューにデータを追加している場合、これをサーバーから取得する最良の方法は何ですか?

ホテルと部屋を一覧表示する簡単なアプリケーションを作成しました。Rails と postgresql でバックエンドを作成し、heroku で起動しました。JSON を使用して、iOS フロントエンド間で情報をやり取りしています。

これが私が疑問に思っていることです。新しい項目を追加するための UIBarButtonItem を持つ TableViewController があるとします。新しいアイテムが追加され、ビューが更新されます。

これどうやってやるの?今、私のアプリは再びサーバーから取得しますが、これはばかげているようです。

リストにはすでに 50 個のアイテムがあるかもしれません。新しいアイテムを追加すると、サーバーが再びヒットし、51 個のアイテムが取得されます。

これについて最善の方法は何ですか?

0 投票する
1 に答える
14419 参照

ios - iOS 7.1 で NSURLSession を使用して HTTP 要求と応答を単体テストするにはどうすればよいですか?

NSURLSession を使用して HTTP リクエストとレスポンスを「単体テスト」する方法を知りたいです。現在、単体テストとして実行すると、完了ブロック コードが呼び出されません。ただし、同じコードがAppDelegate(didFinishWithLaunchingOptions) 内から実行されると、完了ブロック内のコードが呼び出されます。このスレッドで示唆されているように、NSURLSessionDataTask dataTaskWithURL 完了ハンドラーが呼び出されないため、「ネットワーク リクエストが完了するまでメイン スレッドが確実にブロックされるようにする」ために、セマフォや dispatch_group を使用する必要があります。

私の HTTP ポスト コードは次のようになります。

これをテストするメソッドは次のようになります。

私のAppDelegateでは、完了ブロック コードは機能し、次のようになります。

単体テスト内で実行するときに完了ブロックを実行する方法についての指針はありますか? 私はiOSの初心者なので、明確な例が本当に役に立ちます。

  • 注: 私が求めているのは、テストの一部として HTTP サーバーに依存しているという点で、厳密な意味での「単体」テストではない可能性があることを認識しています (つまり、私が求めているのは統合テストのようなものです)。
  • 注: NSURLSession を使用した単体テストに関する別のスレッドUnit tests with NSURLSessionがあることは認識していますが、応答をモックしたくありません。
0 投票する
8 に答える
31127 参照

ios - NSURLSessionTask からキャッシュを無効にする方法

私の iOS アプリでは、NSURLSessionTaskjson データをアプリにダウンロードするために使用しています。ブラウザから直接 URL を呼び出すと最新の json が取得され、アプリ内から呼び出されると古いバージョンの json が取得されることがわかりました。

これはキャッシングのせいでしょうか?NSURLSessionTaskキャッシュを使用しないようにするにはどうすればよいですか。

これは私が使用する呼び出しです:

ありがとう!

0 投票する
2 に答える
1754 参照

ios - どの種類の NSURLSessionTask が発生したかを確認する

困っているようです。何らかの理由で、NSURLSessionTaskオブジェクトのクラス タイプを確認しようとすると、まったく機能しません。それらのtaskDescriptionプロパティを確認すると、タスクを開始する前にそれらを設定すると、もちろん機能します。以下のコードが機能しない理由を知りたいだけです。提供されたヘルプに感謝します!

0 投票する
1 に答える
1579 参照

ios - iOS8 拡張機能のバックグラウンド NSURLSession サンドボックス エラー

バックグラウンド NSURLSession を使用して、写真アプリの共有拡張機能からファイルをアップロードしようとしています。バックグラウンド NSURLSession は、uploadTaskWithRequest:WithFile: API を使用したアップロード タスクのみをサポートするため、まず拡張機能から取得した画像 URL の URL を取得し、画像コンテンツを共有コンテナーに書き込み、次に新しいファイルをアップロードします。NSURLSession にアクセス許可の問題があるようです。次のエラーが発生しています。

「ファイル file:///private/var/mobile/Containers/Shared/AppGroup/... のサンドボックス拡張機能の発行に失敗しました」

これに似た投稿がいくつかあることは知っていますが、どれも拡張機能から URL をロードしておらず、一時ファイルの書き込み先を示していません。

コードは次のとおりです。

0 投票する
3 に答える
5075 参照

ios - NSURLSessionTask のリクエストがいつ開始されるかを判断する方法は?

私は s を使用しており、HTTP リクエストの一部にかかる時間を監視しようとしています。実際に最初のリクエストを行うNSURLSessionTaskときに、どのデリゲート メソッド (または他の何か) を監視できますか? NSURLSessionTaskこれがNSURLConnection内部の場合NSOperation、リクエストを開始するときにタイマーを開始するだけですが、タスクの開始時期を制御することはできません。

0 投票する
1 に答える
2248 参照

objective-c - NSURLSessionDataTask の完了を強制的に待機する

ログイン試行情報を送信し、Web サービスからの応答を待ってURLRequest、ユーザーがログインできるかどうかを確認する を作成しています。

私がこれを行うことを望んでいた方法は、ユーザーにユーザー名とパスワードを 2 つのテキスト フィールドに入力させ、ボタンを押すことで、以下の関数を呼び出すことでした。この関数は を開始NSURLSessionDataTaskし、ブール値のログインの成功/失敗NSStringと、対応するエラー メッセージ (存在する場合) を含む構造体を構築します。

NSURLSessionDataTask's問題は、完了ブロックの実行が完了する前に関数が構造体を返すことです。このタスクがタイムアウトするか完了するまでプログラムを強制的に待機させる方法はありますか? または、関数が戻る前に、完了ブロックの実行をメインスレッドにプッシュできますか?

ありがとう!明確にする必要がある場合はお知らせください。

(また、GCD に言及している StackOverflow の周りで出回っている同様の質問を見たことがあります。これはやり過ぎの解決策ですか?これらの質問のどれも、まったく同じことについて話しているようには見えません。または、私の現在の理解よりも高いレベルで話しているようです。私はまだObjective-Cに非常に慣れていません)

... (リクエストの作成と HTTP ボディの設定)