本文對使用移動網關過程中出現的結果碼進行說明,方便您進行問題排查。
網關側結果碼
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 對應的行動裝置 App沒有配置該 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 | / | 解密出錯。 |