問題タブ [nsurlsessionuploadtask]

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

file-upload - iOS で NSURLSession マルチパート フォーム データを使用してファイルをアップロードできない

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL; マルチパートフォームデータを使用した方法で動画・画像ファイルをアップロードしようとしています。しかし、どういうわけかファイルをアップロードできず、" stream ended unexpectedly" エラーが発生します。

要件

  1. ビデオ/画像ファイルをサーバーにアップロードする
  2. アプリはバックグラウンド アップロードをサポートする必要があります (アプリがバックグラウンドに移行した後もアップロード プロセスを続行します)
  3. サーバーは、データがマルチパート フォーム データを使用して送信されることを想定しています。

これを達成するために使用されるメソッド/API

  1. NSURLSession バックグラウンド セッション API (完全なコードを以下に示します)

    2.- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL

課題/直面している問題

  1. stream ended unexpectedlyこの API をアップロード プロセスに使用するたびに " " エラーが発生する

注意点

  1. NSURLConnectionの代わりに使用している場合、アップロードは同じコードで成功していますNSURLSession

  2. NSURLSessionバックグラウンド アップロード プロセスは、ファイルの場所 ( NSURL) をパラメーターとして想定し、NSData を受け入れません。アップロード前にファイルを変換することNSDataはできません。つまり、ファイル本体に NSData を追加することはできません。

次の点で助けが必要

  1. 形成されているマルチパートフォームデータボディに間違いはありますか (注 - 同じコードが NSURLConnection で動作しています)

  2. 私のアプローチのどこが間違っていますか?

  3. NSURLSession backgroundSessionアップロードをサポートするために、サーバー レベルで何か変更を加える必要がありますか? (データ解析か何かで?)

    ファイルのアップロードに使用されているコードは次のとおりです

NSString *BoundaryConstant = @"----------V2ymHFg03ehbqgZCaKO6jy";

0 投票する
4 に答える
12381 参照

ios - URLSessionUploadTask が即座に自動的にキャンセルされる

URLSessionUploadTask新しく作成されたものがすぐにキャンセルされるという奇妙な問題が発生しています。Xcode 8 の現在のベータ版のバグかどうかはわかりません。

投稿しようとしているコードは一度だけ正常に実行されたため、バグである可能性があると思われます。その後、変更は加えられず、単に機能しなくなりました。はい、文字通り一度実行した後、動作を停止しました。最後にエラーを投稿します。

以下にコードを掲載しますが、最初にここでのロジックがどのように機能するかを要約します。

私のテスト、またはユーザー公開 API (Playgrounds またはアプリで直接使用するための IE) は、authorizeメソッドを呼び出します。このauthorizeメソッドはbuildPOSTTask、有効な URL を構築URLSessionUploadTaskし、メソッドによって使用されるを返しますauthorize

そうは言っても、コードは以下のとおりです。

セッション:

アップロード タスクを作成する関数:

上記の関数によって作成されたタスクを使用する認証関数:

テストでこのエラーを見つけました:

次のエラーで常に即座に失敗します。

エラー Domain=NSURLErrorDomain Code=-999 「キャンセルされまし」 NSErrorFailingURLStringKey = https://anilist.co/api/auth/access_token?client_secret=削除&grant_type=authorization_code&redirect_uri=genericwebsitethatshouldntexist.bo&client_id=ibanez-hod6w&code=削除}

次の点に注意してください。

  • セッションで使用される URL は有効です。
  • すべての資格情報が有効です。
  • 以前は発生しなかった「キャンセルされた」エラーで即座に失敗します。どこでもタスクをキャンセルしていないため、システムによってキャンセルされています。
  • 無期限実行が有効になっているプレイグラウンドでも失敗します。これは私のテストに限定されません。

これが私が試したことのリストです:

  • これはバグだと思うので、まずプロジェクトをクリーンアップし、派生データを削除し、すべてのシミュレーターをリセットしようとしました。それらのどれも機能しませんでした。
  • Macを再起動するところまで行きました...
  • 強力なポインターがないためにアップロード タスクの割り当てが解除され、次に を呼び出しているという小さな疑いの下で、によって作成されたタスクを返すようにcancel書き直して、テストの変数に割り当てました。タスクはまだキャンセルされていました。authorizebuildPOSTTask

私がまだ試していないこと (ただし、これらに取り組んでいる間、他のアイデアを受け入れます):

  • 物理デバイスで実行します。これは iOS 10 プロジェクトであるため、現在 iPad に iOS 10 をダウンロードしています。編集:試してみましたが、これを行うことはできません。

私は何を試してみるべきかについてのアイデアがありません。生成されたログには有用な情報がないようです。

編集:

プロジェクト全体をここに投稿することにしました。とにかく完成したらオープンソースになり、私が取得したAPI認証情報はテストアプリ用です。

ALCキット

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

ios - 進行中の複数のビデオのアップロード

たとえば、進行状況ビューを使用した複数のビデオのアップロードを探しています。ここで私はステップを定義しました。

  1. ギャラリーを開き、ビデオを選択します。
  2. ギャラリーからビデオを選択し、選択内容を編集した後、サム イメージを作成します。
  3. 選択したすべてのビデオは、テーブルビューまたはコレクション ビューでサム イメージとともに表示されます
  4. Tableview または Collection ビューでビデオのアップロード プロセスを進行状況とともに表示します。

誰でもそれを行う方法を知っています、私は私にとって役に立ちます。

NSUrlsession UPload タスクを使用できますが、実装できない可能性があります。

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

ios - Objective-CのNSURLSessionUploadTaskの例?

こんにちはNSURLSessionDataTask、アプリで次のようにバックグラウンド http 呼び出しに使用しています。

しかし、2 つのサーバーでhttps://demo.demosite.comhttp://214.43.45.35/を実行しましが、 dataTaskWithRequest:request を試したところ、両方のサーバーがサポートされていません。バックグラウンドでサポート?.

NSURLSessionUploadTaskアプリが実行されていないときのバックグラウンドでのサポート。誰でもNSURLSessionUploadTaskコールバックの例を共有できますか?

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

ios - NSURLSessionUploadTask サーバーの応答を読み取る方法

NSURLSessionUploadTaskを使用してファイルをアップロードしています。

ここに私のコードの一部が完全ではありません

しかし問題は、サーバーが送り返す JSON 応答を取得できないことです。

次のデリゲートも起動していませんが、他のデリゲートは起動しています

私が使用しているコード:

代表者に合わせました

  1. NSURLSessionDataDelegate
  2. NSURLSessionDelegate
  3. NSURLSessionTaskDelegate

ありがとう