由于某种原因,远程Web服务器似乎响应404未找到。也许服务器正在做正确的事情。如果是这样,您的应用程序需要以明智的方式处理此响应。也许它没有做正确的事情,您需要修复服务器组件中的错误。:-)
我将用两种不同的方法来解决应用程序崩溃问题。
首先,让我们处理此错误,以便应用程序不会崩溃。例如,我们将使用一些关于错误的详细信息填充
resultText
控件。由于我们没有关于请求应该执行什么或响应看起来像什么的详细信息,因此现在没有更多可讨论的健壮错误处理。请记住,网络调用并不总是有效的,因此即使您解决了下面提到的第二个问题,您也需要一些错误处理。
private async void buttonStringGet_Click_1(object sender, RoutedEventArgs e)
{
JsonWebAsync.JsonWebClient client = new JsonWebAsync.JsonWebClient();
string result;
try
{
var resp = await client.DoRequestAsync("myurl");
result = resp.ReadToEnd();
}
catch (WebException ex)
{
result = string.Format("Could not get data. {0}", ex);
}
resultText.Text = result;
}
其次,让我们尽量避免出现第一个错误。确保客户端发送的请求有意义。您可以添加一些工具代码来确保使用“myurl”替代的任何内容都是明智的。
private async void buttonStringGet_Click_1(object sender, RoutedEventArgs e)
{
JsonWebAsync.JsonWebClient client = new JsonWebAsync.JsonWebClient();
string requestUrl = ComputeRequestUrl();
System.Diagnostics.Debug.WriteLine("Sending request for {0}", requestUrl);
var resp = await client.DoRequestAsync(requestUrl);
string result = resp.ReadToEnd();
resultText.Text = result;
}
现在,当您运行带有调试器的调试版本时,如果选择Debug流,您应该能够在Visual Studio的输出窗口中看到跟踪输出。