3
我一直在編寫一個庫,其中包含從在線服務到存儲處理的數據處理的大部分基本功能,並且我一直堅持應該將圖像上傳到主機的方法會返回文件的路徑。HttpClient.SendRequestAsync觸發StackOverflow
問題是,當我嘗試撥打電話時,應用程序因堆棧溢出而死機。
下面是完整的方法:
public static async Task<WebResult> UploadImage(WebHost webHost, Object webPath, String webQuery, IRandomAccessStream imageStream) {
if (!AllowNetworkConnectivity) {
return new WebResult(false, true, null);
}
HttpClient
httpClient = new HttpClient();
HttpMultipartFormDataContent
httpMultipartContent = new HttpMultipartFormDataContent();
HttpStreamContent
httpStreamContent = new HttpStreamContent(imageStream);
httpStreamContent.Headers.Add("Content-Type", "application/octet-stream");
httpMultipartContent.Add(httpMultipartContent);
try {
HttpRequestMessage
httpRequest = new HttpRequestMessage(HttpMethod.Post, new Uri(WebServerUrl(/* ! */)));
Dictionary<String, String>
webCredentialsDictionary = WebServerAuthenticationCredentials(webHost) as Dictionary<String, String>;
foreach (KeyValuePair<String, String> credentialEntry in webCredentialsDictionary) {
httpRequest.Headers.Add(credentialEntry);
}
httpRequest.Content = httpMultipartContent;
/* THE STACK OVERFLOW EXCEPTION IS TRIGGERED HERE */
HttpResponseMessage
httpResponse = await httpClient.SendRequestAsync(httpRequest);
httpResponse.EnsureSuccessStatusCode();
return new WebResult(true, true, null);
} catch (Exception exception) {
AppController.ReportException(exception, "Unable to upload image.");
return new WebResult(false, true, null);
}
}
堆棧跟蹤是什麼樣的?原因*可能會進一步上升 –
它似乎沒有任何問題。它只包含對此方法的調用,以及來自初始按鈕單擊事件的3個以及來自'mscorlib.ni'的一堆方法,但我認爲我看到的堆棧跟蹤是典型的移動應用。 – auhmaan
'httpMultipartContent.Add(httpMultipartContent);'? – kennyzx