2017-05-30 20 views
0

私はAlamofireを使用したEventBriteを照会しようとしていたEventBriteに送信しませんが、結果Alamofireは、Authorizationヘッダが

[Result]: SUCCESS: { 
    error = "NO_AUTH"; 
    "error_description" = "An OAuth token is required for all requests"; 
    "status_code" = 401; 
} 

私の第一の変形の形式に誤りがあります

func getAdditionalInfo(_ urlPath: String) { 
     DispatchQueue.global(qos: .background).async { 
      let headers: HTTPHeaders = [ 
      "Authorization" : "Bearer 34832udsfsdjkfds" // 34832udsfsdjkfds is fake 
      ] 

      Alamofire.request(urlPath, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { (response) in 
       debugPrint("EventbriteAPIManager response", response) 
       if response.result.error == nil { 

       } else { 
        guard let error = response.result.error else { return } 
        debugPrint(error) 
       } 
      }) 
     } 
    } 

私の第二の変種

func getAdditionalInfo(_ urlPath: String) { 
    DispatchQueue.global(qos: .background).async { 
     let sessionManager = SessionManager.default 
     sessionManager.session.configuration.httpAdditionalHeaders = [ 
      "Authorization" : "Bearer 34832udsfsdjkfds" // 34832udsfsdjkfds is fake 
     ] 

     request(urlPath, method: .get, parameters: nil, encoding: URLEncoding.default).responseJSON(completionHandler: { (response) in 
      debugPrint("EventbriteAPIManager response", response) 
      if response.result.error == nil { 

      } else { 
       guard let error = response.result.error else { return } 
       debugPrint(error) 
      } 
     }) 
    } 
} 

私はこの要求をPostmanを使用して作成しようとしましたが、すべて動作します。どうすれば修正できますか?ありがとう。

答えて

0

私の要求が変更され、それは私のために働く。問題は、eventbriteトークンをヘッダーに送信するのではなく、URLに追加することです(郵便配達でテストすると最も興味深く、トークンがヘッダーに送信された場合に動作します)。

private func getEventbriteLocation(_ urlPath: String, success: ((_ eventbriteModel: EventbriteLocationModel) -> Void)?, fail: ((_ error: Error) -> Void)?) { 
    DispatchQueue.global(qos: .background).async { 
     guard let BackendTokensModel = BackendAPIManager.shared.BackendTokensModel else { 
      BackendAPIManager.shared.getTokens(success: { (tokenModel) in 
       self.getEventbriteLocation(urlPath, success: success, fail: fail) 
      }, fail: nil) 
      return 
     } 

     let rightURL = urlPath.appending("/?token=\(BackendTokensModel.eventbrite)") 
     AlamofireManager.shared.request(rightURL, method: .get).responseJSON(completionHandler: { (response) in 
      if response.result.error == nil { 
       guard let json = response.result.value as? [String : Any] else { return } 
       guard let eventbriteModel = Mapper<EventbriteLocationModel>().map(JSON: json) else { return } 
       success?(eventbriteModel) 
      } else { 
       guard let error = response.result.error else { return } 
       debugPrint(error) 
       fail?(error) 
      } 
     }) 
    } 
}