當使用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