6

経由でファイル(VideoFile) をサーバーにアップロードしたい。 BackgroundTransferService

私の問題は、ファイル(POSTリクエスト)とともに2つのパラメーターも送信したいということです。

BackgroundTransferServiceそれで、 APIを使用しながら、ファイルのアップロードとともにパラメーターを送信することは可能ですか..?

コードBackgroundTransferService

        BackgroundTransferRequest req = new BackgroundTransferRequest(new Uri("ServerURL", UriKind.Absolute));
        req.Method = "POST";
        req.TransferPreferences = TransferPreferences.AllowCellularAndBattery;

        string uploadLocationPath = "/Shared/Transfers/myVideoFile.mp4";
        string downloadLocationPath = "/Shared/Transfers/response.txt";

        req.UploadLocation = new Uri(uploadLocationPath, UriKind.Relative);
        req.DownloadLocation = new Uri(downloadLocationPath, UriKind.Relative);

        req.TransferProgressChanged += req_TransferProgressChanged;
        req.TransferStatusChanged += req_TransferStatusChanged;

        try
        {
            BackgroundTransferService.Add(req);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Unable to add video to upload queue.\nPlease try again later.", App.appName, MessageBoxButton.OK);
        }

誰かがより多くの情報を必要とし、私の質問を理解できない場合は尋ねてください.

迅速な対応が欲しいです。はいまたはいいえ.. はいの場合、どのように..?

4

2 に答える 2

2

数週間前に同様の問題に遭遇しました。私はどうにかして、このファイルのアップロードを管理しましたHttpClient

コードを確認

        HttpClient client = new HttpClient();
        StorageFile file = null; // assign your file here

        MultipartFormDataContent formdata = new MultipartFormDataContent();
        formdata.Add(new StringContent("value"), "key");
        formdata.Add(new StreamContent(await file.OpenStreamForReadAsync()), "file", "recordedVideoFile2.mp4");

        var response = await client.PostAsync(new Uri("URL here"), formdata);
于 2015-05-05T08:54:52.377 に答える
1

あなたが何をしようとしているのか、100%確信が持てません。ただし、HTTPヘッダーを介してできると思います。

BackgroundTransferRequest.Headers プロパティ
https://msdn.microsoft.com/en-us/library/windows/apps/microsoft.phone.backgroundtransfer.backgroundtransferrequest.headers(v=vs.105).aspx

そして、Tag プロパティを持つ送信者として。
https://msdn.microsoft.com/en-us/library/windows/apps/microsoft.phone.backgroundtransfer.backgroundtransferrequest.tag(v=vs.105).aspx

このプロパティを使用して、転送に関連付けられたカスタム データを関連付けることができます。アプリケーションは、転送要求の作成時に値を設定できます。Requests プロパティまたは Find(String) メソッドを使用して転送要求が取得されると、Tag プロパティには以前に設定されたデータが含まれます。このプロパティは、呼び出し元のアプリケーションによってのみ使用され、システムによって無視されます。このプロパティの最大長は 4000 文字ですが、パフォーマンスを向上させるためにデータのサイズを小さくすることをお勧めします。

于 2015-05-13T18:20:19.640 に答える