2017-04-06 187 views
2

我試圖調試由Alamofire發送到服務器端點的HTTP標頭&正文。所有的頭參數看起來都是正確的,因爲我得到了我正在處理的端點的確認,但是,我遇到了服務器問題,我在參數字段中發送給它的JSON沒有被解析。如何找出請求中發送的內容?調試Alamofire請求


let headers: HTTPHeaders = [ 
        "API-Key": apiKey, 
        "Accept": "application/json", 
        "Content-Type": "application/json" 
       ] 

let data = ["name":"Don Jonhson"] 


Alamofire.request(endPointUrl, method: .post, parameters: data, 
encoding: URLEncoding.httpBody, headers: headers).responseJSON() { 
      response in 

      if let status = response.response?.statusCode { 
       switch(status){ 
       case 201: 
       debugPrint(response) 
       default: 
       debugPrint(response) 
       } 
      } 

      ... 

回答

2

你使用,你必須使用alamofire的參數,而不是

let params: Parameters = ["name":"Don Jonhson"] 

Alamofire.request(endPointUrl, method: .post, parameters: params, 
encoding: URLEncoding.httpBody, headers: headers).responseJSON() { 
     response in 

     if let status = response.response?.statusCode { 
      switch(status){ 
      case 201: 
      debugPrint(response) 
      default: 
      debugPrint(response) 
      } 
     } 

     ... 
+0

感謝一個簡單的字符串字典。 我該如何檢查名稱是否已正確插入到http正文中作爲JSON? – rubyist

+0

當你收到一個響應時,你可以檢查它是否是200,這樣你可以收到一些數據,否則你可以檢查你的後端,看看你發送的用戶是否已經創建。你已經試過我的答案,如果它已經奏效,你可以請把它標記爲正確的答案? –

+0

我已經收到了200個回覆。問題是我從服務器得到一個錯誤,表示請求正文中的JSON不正確。這是我想要調試的。 服務器端點正在正確解釋標題信息,即API密鑰,內容類型等。服務器還應該解析包含一些JSON數據的http正文。服務器端點抱怨發送的JSON。 所以我試圖弄清楚的是,當請求離開iPhone時,http實體中的實際內容以及如何從Alamofire獲取該信息? – rubyist