0

wp7 BackgroundTransferService を使用して画像をアップロードし、サーバーの応答を取得する方法は?

 var transferRequest = new BackgroundTransferRequest(new Uri(Global.profileUploadServerUrl, UriKind.Absolute));
            transferRequest.Method = "POST";
            transferRequest.UploadLocation = new Uri(@"/shared\transfers/file.jpg", UriKind.Relative);
            transferRequest.TransferPreferences = TransferPreferences.AllowCellularAndBattery;
            transferRequest.Headers["Content-Type"] = "multipart/form-data";
            transferRequest.TransferStatusChanged += new EventHandler<BackgroundTransferEventArgs>(transferRequest_TransferStatusChanged);
            transferRequest.TransferProgressChanged += new EventHandler<BackgroundTransferEventArgs>(transferRequest_TransferProgressChanged);

            BackgroundTransferService.Add(transferRequest);



static void transferRequest_TransferProgressChanged(object sender, BackgroundTransferEventArgs e)
    {
       // throw new NotImplementedException();
    }

static void transferRequest_TransferStatusChanged(object sender, BackgroundTransferEventArgs e)
{
    BackgroundTransferRequest request = sender as BackgroundTransferRequest;
    if (request.TransferStatus == TransferStatus.Completed)
    {
        BackgroundTransferService.Remove(request);
        if (request.StatusCode == 201)
        {
            MessageBox.Show("Upload completed.");
        }
        else
        {
            MessageBox.Show("An error occured during uploading. Please try again later." + request.StatusCode.ToString() + "/ " + request.TransferError);
        }
    }
}

画像の読み込みは成功したようですが、サーバーはステータス 206 を返します。サーバーからの応答を取得するにはどうすればよいでしょうか。ここに例が見えましたが、私はそれを理解していませんでした。 この例では、次の行があります。

  request.DownloadLocation = new Uri (responsePath, UriKind.RelativeOrAbsolute);

指定する必要があるということですか?もしそうなら、それは同じURLを指定しますが、失敗します。一般に、画像サーバーをアンロードした後のアイデアは、画像へのリンクを含む応答を返す必要があります。しかし、彼は答えを出します 206. どのように答えを得るのですか?

4

1 に答える 1

0

MSDN のBackgroundTransferRequest.StatusCode プロパティトピックからの抜粋:

このプロパティには、リクエストが開始されたサーバーから返された HTTP ステータス コードが含まれます。成功を示すステータス コードは、サーバーの構成に応じて 200 または 206 です。このコードは、サーバーが要求を正常に完了できたかどうかを示していることに注意してください。転送が成功したことを示すものではありません。転送が成功すると、TransferStatus は Completed になり、TransferError は null になります

于 2013-05-02T06:46:57.637 に答える