当使用QuickBooks Online API V3和SDK调试程序时。如何解决来自DataServices的错误请求。我已经经历了Exception innerExceptions的几个层,我只看到ValidationException。quickbooks online sdk v3如何解决badrequest/ValidationException
但是什么打破了验证异常?
是否有日志来查看造成问题的原因?
当使用QuickBooks Online API V3和SDK调试程序时。如何解决来自DataServices的错误请求。我已经经历了Exception innerExceptions的几个层,我只看到ValidationException。quickbooks online sdk v3如何解决badrequest/ValidationException
但是什么打破了验证异常?
是否有日志来查看造成问题的原因?
请提及您使用的是哪个SDK(JAVA/.NET/PHP)。
https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits
您可以设置记录器调试模式拍摄的原始请求和响应个XML。从响应XML中,您将获得失败的详细信息(如果有)。
否则,您可以直接从APIExplorer调用这些端点。
https://developer.intuit.com/apiexplorer?apiname=V3QBO
由于
对于.NET SDK请启用请求/响应日志。将不良异常的详细信息保存在这些文件中。 https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0150_ipp_.net_devkit_3.0/logging
我在深入了解产生的异常时发现了这一点。
一般来说,你会得到一个异常,你检查内部异常对象是不是null或没有,如果它有一个内部异常,你看它。
你会发现,每一个异常也有一个被称为“InnerExceptions”(复数)属性,它是包含在内的例外列表,此属性将是无效的,当你有一个适当的内部异常,但在最后一节(在我的情况下)当内部异常属性为空时,此列表包含一个内部异常,其细节为。
该属性可以用Intuit.Ipp.Exception.IdsException和含有IdsError
的我使用的是IPP的.Net SDK 3.0 API列表(2.0.2.0版本)
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;
}
}
只需收集来自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 .
}
所以,如果没有日志,那么你不能找出是什么原因造成的? – QuickBooksDev
是的,服务端错误是这样的 –
我使用的是.Net,但是在创建带折扣的发票时试图找出为什么我要坏请求时,日志记录没有帮助。见下文。仍然不知道是什么导致了ValidationException。 Intuit.Ipp.Exception.IdsException:BadRequest ---> Intuit.Ipp.Exception.ValidationException:抛出ValidationException。 – QuickBooksDev