本文對使用移動網關過程中出現的結果碼進行說明,方便您進行問題排查。
網關側結果碼
1000 為 API 調用成功,其他都是失敗的錯誤碼。
1001-5999、7XXX 為網關錯誤。
其中,7XXX 表示無線保鏢驗簽或解密報錯,具體參見 無線保鏢結果碼說明 進行排查。
除結果碼外,您還可以查看響應 Header 中的
Memo
和tips
字段,以了解更多錯誤信息。專有云用戶還可以通過網關服務器上的
~/logs/gateway/gateway-error.log
日志查看詳細錯誤信息。
當發生異常時,可以嘗試通過網關異常排查進行排查。欲了解具體信息,參見 網關異常排查。
結果碼 | 描述 | 解釋 |
1000 | 處理成功 | 網關 API 調用處理成功。 |
1001 | 拒絕訪問 | Mock 格式錯誤,缺少 |
1002 | 調用次數超過限額 | 開啟 限流配置 后,當觸發限流時會導致該異常。 |
1005 | 未授權 | 開啟 API 授權 后,API 調用時授權校驗失敗。 |
2000 | 登錄超時 | 開啟授權校驗功能,非登錄狀態會觸發該異常。 |
3000 | RPC 接口不存在或關閉 | 在當前 workspaceId 對應的環境下,appId 對應的移動應用沒有配置該 operationType 的 API 服務,或者該 API 服務不處于 開放 狀態。 |
3001 | 請求數據為空 | 客戶端請求數據中的 |
3002 | 數據格式有誤 | RPC 請求格式有問題。專有云用戶可以在服務端日志 |
3003 | 數據解密失敗 | 數據解密失敗。 |
4001 | 服務請求超時 | MGS 調用業務系統服務超時。后端業務系統負載過高導致,需排查后端系統的運行情況。若超時設置不合理,可以適當調整。注:默認超時時間為 3s。 |
4002 | 遠程調用業務系統異常 | MGS 調用業務系統服務出現異常。專有云用戶可以在服務端日志 |
4003 | API 分組 HOST 異常 | MGS 調用 HTTP 業務系統服務出現 |
5000 | 未知異常 | 其他嚴重錯誤。專有云用戶可以在服務端日志 |
7000 | 沒有設置公鑰 | 移動 APP 中無線保鏢中無 appId 對應的密鑰或者網關無法獲取 appId 對應的簽名密鑰。 |
7001 | 驗簽的參數不夠 | 網關服務端驗證簽名不通過。 |
7002 | 驗簽失敗 | 網關服務端驗證簽名不通過。 |
7003 | 驗簽-時效性失敗 | API 請求入參 ts 時間戳超過系統設置的時間有效性。需要檢查客戶端時間是否為系統時間。 |
7007 | 驗簽-缺少 ts 參數 | API 請求缺少驗簽 ts 參數。 |
7014 | 驗簽-缺少 sign 參數 | API 請求缺少驗簽 sign 參數。一般情況下是客戶端簽名數據失敗,導致缺失 sign 參數。請檢查客戶端無線保鏢圖片是否正確。 |
8002 | 跨域預檢請求(CORS preflight) | 跨域預檢請求。 |
業務側結果碼
以下結果碼可在業務系統服務器內部查看錯誤信息。
通過查看各個業務系統上的 ~/logs/mobileservice/monitor.log
日志可確定異常具體信息。
結果碼 | 適用協議 | 描述 | 解釋 |
6000 | MPC、DUBBO | RPC-目標服務找不到 | 發布的服務(service)無法找到,服務器無法訪問或者服務已遷移。 |
6001 | MPC、DUBBO | RPC-目標方法找不到 | 發布的該 service 內的方法無法找到。 |
6002 | MPC、DUBBO | RPC-參數數目不正確 | 傳入的參數個數,與聲明的參數個數不相等。 |
6003 | MPC、DUBBO | RPC-目標方法不可訪問 | 目標方法不能被調用。 |
6004 | HTTP、MPC、DUBBO | RPC-JSON 解析異常 | HTTP:將 RPC 參數轉換為后端 HTTP 請求參數時發生異常。MPC/DUBBO:將 RPC JSON 數據反序列化為業務參數對象時失敗。 |
6005 | MPC、DUBBO | RPC-調用目標方法時參數不合法 | 反射調用時,參數不合法。 |
6007 | MPC、DUBBO | RPC-驗證登錄服務不可用 | 沒有實現 SPI 包中驗證登錄接口或者驗證登錄接口配置出錯。 |
6666 | HTTP、MPC、DUBBO | RPC-業務拋出異常 | HTTP:后端系統返回 HTTP status code 不等于200。MPC/DUBBO:業務方拋出的異常。RPC 無法處理,統一為業務異常。 |
Android 客戶端結果碼
結果碼 | 描述 | 提示文案 |
0 | 未知錯誤 | 未知錯誤,請稍后再試 |
1 | 客戶端找不到通訊對象,沒有設置 Transport | 網絡出錯,請稍后再試 |
2 | 客戶端沒有網絡,如用戶關閉了網絡或者禁止了應用的網絡權限 | 網絡無法連接 |
3 | SSL相關錯誤,包括 SSL 握手錯誤,SSL 證書錯誤 | 客戶端證書有誤,請檢查手機的時間設置是否準確。 |
4 | 客戶端網絡連接超時,TCP 建連超時,目前超時時間為 10s | 網絡欠佳 |
5 | 客戶端網絡速度過慢,數據讀寫超時,socketTimeout 的場景 | 網絡欠佳 |
6 | 客戶端請求服務端無響應,NoHttpResponseException | 網絡出錯,請稍后再試 |
7 | 客戶端網絡 IO 錯誤,對應 IOException | 網絡出錯,請稍后再試 |
8 | 客戶端網絡請求調度錯誤,執行線程中斷異常 | 網絡出錯,請稍后再試 |
9 | 客戶端處理錯誤,包括序列化錯誤、注解處理錯誤、線程執行錯誤 | 網絡出錯,請稍后再試 |
10 | 客戶端數據反序列化錯誤,服務端數據格式有誤 | 網絡出錯,請稍后再試 |
13 | 請求中斷錯誤,例如線程中斷時網絡請求會被中斷 | 網絡出錯,請稍后再試 |
15 | 客戶端網絡授權錯誤,HttpHostConnectException,Connection to xxx refused,無網絡或者對應服務器拒絕連接 | 網絡無法連接 |
16 | DNS 解析錯誤 | 網絡無法連接,請稍后再試 |
18 | 網絡限流,客戶端限流,當客戶端請求流量超過閾值后會被限制網絡請求 | 網絡限流,請稍后再試 |
code ≧ 400 和 code < 500 | HTTP 響應碼為 4xx | 網絡無法連接 |
400 > code ≧ 100 和 500 < code < 600 | HTTP 非成功的響應碼 | 網絡無法連接,請稍后再試 |
iOS RPC 請求返回錯誤碼
值 | 狀態碼 | 含義 |
0 | kDTRpcNetworkError | 網絡無法連接。 重要 網絡失敗均會都被歸屬到這里,具體失敗 error 會通過 userinfo 透傳出去,userinfo 字典里獲取對應 error 的 key 值為 kDTRpcErrorCauseError。 |
1 | kDTRpcEmptyResponse | 服務端返回的數據為空。 |
2 | kDTRpcInvalidJSONString | 服務端返回的 JSON 字符串格式不正確,不能成功轉換成 JSON 對象。 |
3 | kDTRpcDecodeObjectError | 反序列化 JSON 對象出錯。 |
4 | kDTRpcNetworkCancelled | 網絡已取消。 |
5 | kDTRpcEncodeObjectError | 序列化 JSON 對象出錯。 |
6 | kDTRpcProtocolBuffersDecodeError | 反序列化 PB 對象出錯。 |
9 | KDTRpcSizeControlError | RPC 太大會直接拋出異常(這個 error 委托給了調用方)
|
24 | KDTRpcAbandonError | 賬號切換時登錄 RPC 之后返回 RPC 被丟棄,直接拋出異常。 |
3003 | / | 解密出錯。 |