錯(cuò)誤處理

2018-02-24 15:53 更新

錯(cuò)誤處理

在調(diào)用接口的過(guò)程中,可能出現(xiàn)下列幾種錯(cuò)誤情況:

  • 服務(wù)器維護(hù)中,503?狀態(tài)碼

    HTTP/1.1 503 Service Unavailable
    Retry-After: 3600
    Content-Length: 41
    
    {"message": "Service In the maintenance"}
  • 發(fā)送了無(wú)法轉(zhuǎn)化的請(qǐng)求體,400?狀態(tài)碼

    HTTP/1.1 400 Bad Request
    Content-Length: 35
    
    {"message": "Problems parsing JSON"}
  • 服務(wù)到期(比如付費(fèi)的增值服務(wù)等),?403?狀態(tài)碼

    HTTP/1.1 403 Forbidden
    Content-Length: 29
    
    {"message": "Service expired"}
  • 因?yàn)槟承┰虿辉试S訪問(wèn)(比如被 ban ),403?狀態(tài)碼

    HTTP/1.1 403 Forbidden
    Content-Length: 29
    
    {"message": "Account blocked"}
  • 權(quán)限不夠,403?狀態(tài)碼

    HTTP/1.1 403 Forbidden
    Content-Length: 31
    
    {"message": "Permission denied"}
  • 需要修改的資源不存在,?404?狀態(tài)碼

    HTTP/1.1 404 Not Found
    Content-Length: 32
    
    {"message": "Resource not found"}
  • 缺少了必要的頭信息,428?狀態(tài)碼

    HTTP/1.1 428 Precondition Required
    Content-Length: 35
    
    {"message": "Header User-Agent is required"}
  • 發(fā)送了非法的資源,422?狀態(tài)碼

    HTTP/1.1 422 Unprocessable Entity
    Content-Length: 149
    
    {
      "message": "Validation Failed",
      "errors": [
        {
          "resource": "Issue",
          "field": "title",
          "code": "missing_field"
        }
      ]
    }

所有的?error?哈希表都有?resource,?field,?code?字段,以便于定位錯(cuò)誤,code?字段則用于表示錯(cuò)誤類型:

  • missing: 說(shuō)明某個(gè)字段的值代表的資源不存在
  • invalid: 某個(gè)字段的值非法,接口文檔中會(huì)提供相應(yīng)的信息
  • missing_field: 缺失某個(gè)必須的字段
  • already_exist: 發(fā)送的資源中的某個(gè)字段的值和服務(wù)器中已有的某個(gè)資源沖突,常見(jiàn)于某些值全局唯一的字段,比如 @ 用的用戶名(這個(gè)錯(cuò)誤我有糾結(jié),因?yàn)槠鋵?shí)有 409 狀態(tài)碼可以表示,但是在修改某個(gè)資源時(shí),很一般顯然請(qǐng)求中不止是一種錯(cuò)誤,如果是 409 的話,多種錯(cuò)誤的場(chǎng)景就不合適了)
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)