UploadOperation Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет асинхронную операцию отправки. Общие сведения о возможностях фоновой передачи см. в разделе Передача данных в фоновом режиме. Скачайте пример фоновой передачи для примера кода.
public ref class UploadOperation sealed : IBackgroundTransferOperationPriority
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UploadOperation final : IBackgroundTransferOperationPriority
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UploadOperation : IBackgroundTransferOperationPriority
Public NotInheritable Class UploadOperation
Implements IBackgroundTransferOperationPriority
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Возможности приложения |
internetClient
internetClientServer
privateNetworkClientServer
|
Примеры
В следующем примере показано, как настроить и начать базовую операцию отправки.
using Windows.Foundation;
using Windows.Networking.BackgroundTransfer;
using Windows.Storage.Pickers;
using Windows.Storage;
private async void StartUpload_Click(object sender, RoutedEventArgs e)
{
try
{
Uri uri = new Uri(serverAddressField.Text.Trim());
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add("*");
StorageFile file = await picker.PickSingleFileAsync();
BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("Filename", file.Name);
UploadOperation upload = uploader.CreateUpload(uri, file);
// Attach progress and completion handlers.
HandleUploadAsync(upload, true);
}
catch (Exception ex)
{
LogException("Upload Error", ex);
}
}
Комментарии
После завершения работы приложения приложение должно перечислить все существующие экземпляры UploadOperation при следующем запуске с помощью GetCurrentUploadsAsync. Когда приложение UWP, использующее фоновую передачу, завершается, незавершенные отправки сохраняются в фоновом режиме. Если приложение перезапущено после завершения работы, а эти неполные операции не перечислены и повторно представлены в текущем сеансе, они устареют и по-прежнему занимают ресурсы устройства. Рекомендации по истечении времени ожидания
- 1.) При установке нового подключения для отправки по протоколу TCP/SSL попытка подключения прерывается, если она не установлена в течение пяти минут.
- 2.) После установки подключения сообщение HTTP-запроса, которое не получило ответ в течение двух минут, прерывается. При условии, что есть подключение к Интернету, фоновая передача будет повторять отправку до трех раз. В случае, если подключение к Интернету не обнаружено, дополнительные попытки не будут предприниматься до тех пор, пока это не произойдет.
Руководство по отладке
Остановка сеанса отладки в Microsoft Visual Studio сравнима с закрытием приложения; Отправка PUT приостанавливается, а отправка POST прерывается. Даже во время отладки приложение должно перечислить, а затем приостановить, перезапустить или отменить все сохраненные отправки.
Однако если обновления проекта Microsoft Visual Studio, например изменения манифеста приложения, требуют удаления и повторного развертывания приложения для отладки, GetCurrentUploadsAsync не сможет перечислить сохраненные операции, созданные с помощью предыдущего развертывания приложения.
Журнал версий
Версия Windows | Версия пакета SDK | Добавленная стоимость |
---|---|---|
1803 | 17134 | MakeCurrentInTransferGroup |
2004 | 19041 | RemoveRequestHeader |
2004 | 19041 | SetRequestHeader |
Свойства
CostPolicy |
Возвращает и задает политику затрат для отправки. |
Group |
Примечание Группа может быть изменена или недоступна для выпусков после Windows 8.1. Вместо этого используйте TransferGroup. Возвращает строковое значение, указывающее группу, к которой относится отправка. |
Guid |
Это уникальный идентификатор для конкретной операции отправки. Идентификатор GUID, связанный с операцией отправки, не изменяется в течение всего времени отправки. |
Method |
Возвращает метод, используемый для отправки. |
Priority |
Возвращает или задает приоритет передачи этой операции отправки в backgroundTransferGroup. Возможные значения определяются backgroundTransferPriority. |
Progress |
Возвращает текущий ход выполнения операции отправки. |
RequestedUri |
Возвращает URI для отправки. |
SourceFile |
Указывает отправляемый файл IStorageFile . |
TransferGroup |
Возвращает группу, к которой принадлежит эта операция отправки. |
Методы
AttachAsync() |
Возвращает асинхронную операцию, которую можно использовать для отслеживания хода выполнения и завершения присоединенной передачи. Вызов этого метода позволяет приложению присоединять операции отправки, запущенные в предыдущем экземпляре приложения. |
GetResponseInformation() |
Возвращает сведения об ответе. |
GetResultStreamAt(UInt64) |
Возвращает частично отправленный ответ в указанном расположении. |
MakeCurrentInTransferGroup() |
Определяет приоритеты операции передачи (и всех последующих операций передачи в той же группе передачи). Вызов этого метода при передаче, которая не принадлежит группе передачи, не оказывает влияния. |
RemoveRequestHeader(String) |
Используется для удаления заголовка HTTP-запроса. |
SetRequestHeader(String, String) |
Используется для задания заголовка HTTP-запроса. |
StartAsync() |
Запускает асинхронную операцию отправки. |