使用带有SDK的QuickBooks Online API V3调试程序时。如何解决来自DataServices的错误请求。我已经浏览了几个Exception innerExceptions层,我只看到ValidationException。
但是什么绊倒了验证异常???
是否有日志查看导致问题的原因?
答案 0 :(得分:3)
catch (Intuit.Ipp.Exception.IdsException ex)
{
//TODO: handle dupe or other....
var returnMessage = string.Empty;
var innerException = ((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault();
if (innerException != null)
{
returnMessage = innerException.Message;
}
}
答案 1 :(得分:1)
我深入了解生成的异常时发现了这一点。
一般来说,你会得到一个异常并检查内部异常对象是否为null或者什么都没有,如果它有一个内部异常你会看到它。
您会注意到每个异常都有一个名为“ InnerExceptions ”的属性(复数),这是一个包含内部异常的列表,当您有一个正确的内部异常时,此属性将为null,但是最后一个(在我的情况下)当内部异常属性为null时,此列表包含一个带有详细信息的内部异常。
此属性在Intuit.Ipp.Exception.IdsException上可用,并包含IdsError列表
我正在使用IPP .Net SDK 3.0 API(版本2.0.2.0)
答案 2 :(得分:0)
请提及您正在使用的SDK(JAVA / .NET / PHP)。
https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits
您可以将记录器设置为调试模式以捕获原始请求和响应XML。从响应XML中,您将获得失败的详细信息(如果有的话)。
否则,您可以直接从APIExplorer调用这些端点。
https://developer.intuit.com/apiexplorer?apiname=V3QBO
由于
答案 3 :(得分:0)
对于.Net SDK,请启用请求/响应日志。错误异常的详细信息将保存在这些文件中。 https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0150_ipp_.net_devkit_3.0/logging
答案 4 :(得分:0)
只需收集来自Quickbook API的错误消息。请遵循第一个catch块语句:
catch (Intuit.Ipp.Exception.IdsException ex)
{
string errorMessage = (((Intuit.Ipp.Exception.ValidationException)(ex.InnerException)).InnerExceptions.FirstOrDefault() ?? new Exception()).Message;
// you can further log the error .
}