C # UWP UploadOperation BackgroundUploader Невозможно найти ответ - PullRequest
0 голосов
/ 13 июня 2019
                string boundray = "---------------------------" + DateTime.Now.Ticks.ToString("x");
                string url = HttpDomainHandling(currentUser.DomainURL) + API + "&is_multi_part_upload=true";
                string header = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\"\r\n" + "Content-Type: {3}\r\n\r\n", boundray, "file", file.Name, "application/octet-stream");
                string footer = string.Format("\r\n--{0}--\r\n", boundray);

                Stream headerStream = GenerateStreamFromString(header);
                Stream footerStream = GenerateStreamFromString(footer);
                Stream dataStream = await sfile.OpenStreamForReadAsync();

                MemoryStream fileDataStream = new MemoryStream();
                await headerStream.CopyToAsync(fileDataStream);
                await dataStream.CopyToAsync(fileDataStream);
                await footerStream.CopyToAsync(fileDataStream);
                fileDataStream.Position = 0;

                IInputStream stream = fileDataStream.AsInputStream();

                BackgroundUploader backgroundUploader = new BackgroundUploader();
                backgroundUploader.SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundray);
                backgroundUploader.SetRequestHeader("Cookie", Constants.FELIXSESSIONID + "=" + currentUser.SessionID);
                backgroundUploader.Method = "POST";

                UploadOperation uploadOpration = await backgroundUploader.CreateUploadFromStreamAsync(new Uri(url), stream);

                await Task.Factory.StartNew(() => CheckUploadStatus(uploadOpration, progressEvent, cts));
                var result = await uploadOpration.StartAsync();
                ResponseInformation info = uploadOpration.GetResponseInformation();
                return info;

Невозможно найти ответ json в результатах и ​​ответной информации. Где я могу получить этот ответ ...

Я пытаюсь загрузить файл на свой сервер .. и вернуть данные в формате json.

1 Ответ

0 голосов
/ 16 июня 2019

Наконец получил ответ

  • BackgroundUploader используется, когда вы хотите загрузить что-то по IP или какому-либо адресу, и вам не нужна строка ответа с сервера ...

  • BackgroundUploader может вернуть только код состояния и успешно или информацию об ошибке

если вы хотите что-то загрузить и хотите, чтобы вы указали строку ответа, например JSON или XML ... нужно использовать UWP HTTPCLIENT

//Create an HTTP client object
Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient();

//Add a user-agent header to the GET request. 
var headers = httpClient.DefaultRequestHeaders;

//The safe way to add a header value is to use the TryParseAdd method and verify the return value is true,
//especially if the header value is coming from user input.
string header = "ie";
if (!headers.UserAgent.TryParseAdd(header))
{
    throw new Exception("Invalid header value: " + header);
}

header = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
if (!headers.UserAgent.TryParseAdd(header))
{
    throw new Exception("Invalid header value: " + header);
}

Uri requestUri = new Uri("http://www.contoso.com");

//Send the GET request asynchronously and retrieve the response as a string.
Windows.Web.Http.HttpResponseMessage httpResponse = new Windows.Web.Http.HttpResponseMessage();
string httpResponseBody = "";

try
{
    //Send the GET request
    httpResponse = await httpClient.GetAsync(requestUri);
    httpResponse.EnsureSuccessStatusCode();
    httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
    httpResponseBody = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...