回覆列表
  • 1 # 手機使用者54651047205

    出現500 的錯誤 伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在伺服器的程式碼出錯時出現。IOS HTTP請求的常見狀態碼總結

    雖然出現這種原因是伺服器的錯誤,我覺得伺服器解析請求資料也有可能出現這個錯誤狀態500,所以我從客服端入手。列印返回時的 response 裡面的值為

    :<NSHTTPURLResponse: 0x17003a900> { URL: 你的url地址 } { status code: 500, headers { "Cache-Control" = private "Content-Length" = 3306; "Content-Type" = "text/html; charset=utf-8"; Date = "Sun, 09 Oct 2016 07:45:13 GMT"; Server = "Microsoft-IIS/7.5"; "X-AspNet-Version" = "4.0.30319"; "X-Powered-By" = "ASP.NET"; } }

    從中我們可以看到,返回型別不是json而是text/html型別

    我們知道,在post請求是需要設定請求頭資料型別,以上出錯的請求我是這樣設定的

    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    這個設定方法是我從提交圖片的網路請求方法複製過來的,即@"application/x-www-form-urlencoded"這個型別是提交圖片的型別設定(提交圖片時把提交圖片引數轉成NSData然後再轉成base64的NSData提交)。而我的本次請求是提交json字串的NSData型別。所以"Content-Type"的值設定成”application/json“即可。詳解Http請求中Content-Type講解以及在Spring MVC中的應用

    我的解決方法是重新設定 如下:

    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

    請求 response 大家可以和上面的做對比。

    <NSHTTPURLResponse: 0x17403fe60> { URL: 你的url地址 } { status code: 200, headers { "Cache-Control" = private; "Content-Length" = 75; "Content-Type" = "application/json; charset=utf-8"; Date = "Sun, 09 Oct 2016 07:56:16 GMT"; Server = "Microsoft-IIS/7.5"; "X-AspNet-Version" = "4.0.30319"; "X-AspNetMvc-Version" = "4.0"; "X-Powered-By" = "ASP.NET"; } }

    現在的 status code: 200, 解決了 500 錯誤的問題。出現這個錯誤也有可能後臺對資料的處理錯誤,或者後臺返回的資料型別和前端設定需要返回的型別衝突等。還是得具體問題具體分析

  • 中秋節和大豐收的關聯?
  • 寶寶34天,做高壓氧總是哭怎麼辦?