問題タブ [nsurlsessiondatatask]

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 投票する
4 に答える
2989 参照

ios - NSURLSessionDataTask タイムアウト以降のリクエストが失敗する

私は作成していNSMutableRequestます:

タイムアウトは 10 秒に設定されています。これは、ユーザーがフィードバックを得るのにあまり長く待たされたくないためです。その後、次を作成しますNSURLSessionDataTask

問題は、サーバーがゲートウェイ タイムアウトになり、時間がかかることです。タイムアウト エラーが発生し、ユーザーにフィードバックしますが、タイムアウト エラーが原因で、次の API 呼び出しはすべて同じように失敗します。それを止める唯一の方法は、アプリを強制終了して最初からやり直すことです。タイムアウト エラーの後にタスクまたは接続を強制終了するために何かすべきことはありますか? タイムアウトを設定せず、サーバーからエラー コードを受信するまで待機すると、次のすべての呼び出しが完全に機能します (ただし、ユーザーはかなり待機します!)。

タスクをキャンセルしようとしました:

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

ios - セマフォを使用して非同期呼び出しから値を返す

NSURLSessionネットワーク通話を行うために使用する必要があります。特定の事柄に基づいて、応答を受け取った後、NSErrorオブジェクトを返す必要があります。

セマフォを使用して、非同期呼び出しを同期的に動作させています。問題は、エラーが呼び出し内で適切に設定されることですが、セマフォが終了するとすぐに (

dispatch_semaphore_wait(セマフォ, DISPATCH_TIME_FOREVER);

)、 はerrゼロになります。

助けてください

コード:

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

ios - サーバーからjsonオブジェクトを削除するには?

サーバーから JSON の形式でレシピを取得し、それを UItable に表示するコードを作成します。

このサーバーは Ruby で書かれています。ここで、レシピを削除するリクエストを書きたいと思います。これが私のサーバーの指示です。レシピを削除するには、次のcurlを使用する必要があると言われました。

レシピを削除 DELETE: /recipes/:id Curl では次のようになります。

delete メソッドを実装したいと思います。実際、次のメソッドを実装する必要があることはわかっていました。

delete メソッドを実装する方法を知っている人はいますか?

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

ios - HTTP データ タスク (NSURLSessionDataTask) の NSURLSession はバックグラウンド スレッドで実行されますか、それともキューを提供する必要がありますか?

Appleが提供する新しく洗練されたAPIであるため、今ではNSURLSession避けて使い始めました。NSURLConnection以前は、呼び出しNSURLRequestGCDブロックに入れてバックグラウンドで実行していました。これが私が過去に行っていた方法です:

さて、これが私がどのように使用するかですNSURLSession

私のリクエストはバックグラウンド スレッド自体で実行されるのNSURLRequestか、それとも .

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

nsurlrequest - NSURLRequest タイムアウト値は NSURLSessionConfiguration timeoutIntervalForRequest 値をオーバーライドしますか?

timeoutIntervalForRequest構成 = 120 秒で NSURLSession オブジェクトを作成しています。この後、NSURLSessionDataTaskオブジェクトを作成してメソッドを呼び出していますdataTaskWithRequest:completionHandler。ここで、1 つの入力パラメーターはNSURLRequestです。ここでも NSURLRequest を作成するときに、timeout、cachePolicy などのいくつかのパラメーターを指定できますNSURLSessionConfiguration。では、 a に異なる値を使用するとNSURLRequest、それらの値は値を上書きしNSURLSessionConfigurationますか?

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

ios - NSURLSessionDataTask キャンセルとコア データ

サーバーから新しいユーザープロファイルをダウンロードし、プロファイルごとに写真の配列をダウンロードし、コアデータに保存するNSURLSessionがあります。ユーザーがこの画面に到達するたびに、タスクのダウンロードを停止し、コアデータをクリアしてから、再度入力します。問題は、cancel() 関数が非同期であるため、Core Data をクリアした後にいくつかのプロファイルを保存できることです。さらに、これらのプロファイルは、datatask cancel のおかげで一部のデータがなくてもかまいません。それで、問題は次のとおりです-ダウンロードタスクを正しく完了し、その後コアデータをクリアする方法は?前もって感謝します。

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

unit-testing - OCMock - [NSURLSessionDataTask 応答] iOS 9 で認識されないセレクターがクラッシュする

問題

多くの単体テストでは、モック オブジェクトに OCMock を使用しています。コードがサーバーの応答にどのように応答するかを確認するテストの一環として、NSURLSessionDataTask オブジェクトを作成し、後で「応答」プロパティを使用してみます。

プロットが厚くなる

iOS 9 より前では、テストは問題なく実行されていました。このプロパティは、iOS 9 のアプリの通常のコールバック フローでも正しく機能します。

ただし、iOS 9 ベータ版では、実行時に「認識されないセレクターがインスタンスに送信されました」というエラーでテストがクラッシュします。このプロパティはフレームワーク ヘッダーに存在し、ドキュメントでは削除済みとしてマークされていません。

このサンプル コードは、問題を示しています。

理論

クラスの直接のインスタンス化は、実行時にプロパティを提供しなくなったようです。プロパティは、@dynamicインスタンス化の別のパスを使用して実行時に生成されるプロパティのようです。

質問

iOS 8 での単体テストの実行と下位互換性がある方法で、OCMock オブジェクトの単体テストでこの問題を回避するにはどうすればよいですか?

更新 1

OCMock を最新 (3.1.5) に更新しても問題は解決しません。

追加のコンテキストとして、NSURLSessionDataTaskOCMock を使用する方法を次に示します。テストは 3 行目で失敗します。