【发布时间】:2014-12-06 09:01:57
【问题描述】:
我正在尝试使用 RestSharp 调用 Web 服务(这必须在 WP8 及更高版本中完成)。
这是我的触发方法:
private async void postRest()
{
string getSyncService = "MyService";
var client = new RestClient(ip);
var request = new RestRequest(getSyncService, Method.POST);
request.RequestFormat = DataFormat.Json;
JsonObject jsonGenericRequest = new JsonObject();
jsonGenericRequest.Add("companyid", "123");
jsonGenericRequest.Add("token", "123"); ...
request.AddParameter("GenMobileRequest", jsonGenericRequest);
request.AddHeader("Access-Control-Allow-Methods", "POST");
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddHeader("Accept", "application/json");
try
{
// easy async support
client.ExecuteAsync(request, response =>
{
Console.WriteLine("response content: " + response.Content);
if (response.ResponseStatus == ResponseStatus.Completed)
{
MessageBox.Show("errorMsg: " + response.ErrorMessage);
}
});
}
catch (System.Net.WebException ex)
{
MessageBox.Show(" " + ex.InnerException.ToString());
}
}
在我的日志中,我收到了这个异常:
“System.Net.WebException”类型的异常发生在 System.Windows.ni.dll 并且在托管/本机之前未处理 边界
我什至无法在我的处理程序中保留任何信息
// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
Console.WriteLine(" ---Application_UnhandledException---");
if (Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
Debugger.Break();
}
}
我怎样才能获得有关问题所在的更多信息?
任何有关调用 WS 的正确方法的额外信息将不胜感激。
谢谢
【问题讨论】:
-
你在 lambda 中尝试过 try/catch 吗?
-
是的,我做了,就像在代码中一样,但没有拦截任何东西......
-
不,lambda 内部没有异常处理。你只有在调用 ExecuteAsync 时才有它。
-
此链接很好地回答了您的问题并进行了解释。 blogs.msdn.microsoft.com/ptorr/2014/12/10/async-exceptions-in-c
标签: c# windows-phone-8 restsharp