none
マルチパートアップロードでのサーバーレスポンスについて RRS feed

  • 質問

  • お世話になります。

    マルチパートでのデータをアップロードした時にアップ先サーバーから返された結果を受け取るにはどのようにすれば良いのでしょうか。

    サンプルコードなどを見ると送る方法は分かるのですが、送り先のサーバーが独自に返すテキスト文字(正常、エラー、その他文字列)など受け取るやり方が見つかりません。

    例えば下記のコードの場合(JavaScript)、どのようにレスポンスを受け取れば良いのでしょうか?

    ※ コードが部分的で申し訳ありません。

    var bt = Windows.Networking.BackgroundTransfer;

    var upload = new bt.BackgroundUploder();

    var contentparts = [];

    var part;

    part = new bt.BackgroundTransferContentPart();

    part.setHeader('Content-Disposition', 'form-data"; name="api_key"');

    pat.setText("1234567890");

    contentParts.push(part);

      ※いくつかのデータを設定

    part = new bt.BackgroundTransferContentPart();

    part.setHeader('Content-Disposition', 'form-data"; name="photo"; filename="' + file.name + '"');

    part.setHeader('Content-Type', 'image/jpeg');

    part.setFile(file);

    contentParts.push(part);

    uploader.createUploadAsync(uri, contentParts).then(function (uploadOperation) {

        upload = uploadOperation;      // uploadは外部定義

        promise = uploadOperation.startAsync().then(complete, error, progress); // promiseは外部定義

    });

    function progress() {

    }

    function complete() {

        console.log(upload.guid + " - upload comlete. Status code: " + upload.getResponseInformation().statusCode();

        // HTTPのステータスではなく、接続サーバーがechoなどで返す値を受け取りたい。

    }

    function error(err) {

    }

    2014年1月16日 1:20

回答

すべての返信

  • 試してませんが、UploadOperation::getResultStreamAtでいけませんか?

    IInputStreamから文字列として読み取るのはDataReaderかな。

    • 回答の候補に設定 星 睦美 2014年1月17日 0:18
    • 回答としてマーク 星 睦美 2014年1月27日 2:46
    2014年1月16日 1:51
  • 回答ありがとうございます。

    いろいろ試していたので記憶が薄いのですが確かgetResultStreamAtでpositionを0に設定し確認した記憶があります。

    その時はcomplete()で読み取りを行ったのですが取得できませんでした、completeでの読み取りで正しいかそれすら分かっていない状況です。 お恥ずかしい限りです。

    念の為、もう一度確認を行いたいと思います。

    2014年1月16日 9:13