蔭與swift2.3工作,我使用Alamofire ..它的工作對我來說:
class APIUtils: NSObject{static func fetchData(requestModel:RequestModel,completionBlock:(response:ResponseModel)->Void){
let url = "\(requestModel.baseUrl)\(requestModel.apiUrl)"
Alamofire.request(APIUtils().getHTTPMethod(requestModel.httpMethodType), url, parameters: requestModel.parametersDict,headers:requestModel.headersDict,encoding:(APIUtils().getEncodingFormat(requestModel.encodeType))).responseJSON { (responseObj) -> Void in
let responseModel = ResponseModel()
responseModel.responseCode = responseObj.response?.statusCode
switch responseObj.result {
case .Success(let data):
if (data .isKindOfClass(NSDictionary)){
responseModel.responseDictionary = data as! NSDictionary
}else if (data .isKindOfClass(NSArray)){
responseModel.customModel = data as! NSArray
}
responseModel.isSuccess = true
break
case .Failure(let error):
responseModel.isSuccess = false
print("Request failed with error: \(error)")
break
}
completionBlock(response: responseModel)
}
}
func getHTTPMethod(methodType:HTTPMethodType)->Alamofire.Method{
switch(methodType){
case .GET: return Alamofire.Method.GET
case .POST: return Alamofire.Method.POST
case .PUT: return Alamofire.Method.PUT
case .PATCH: return Alamofire.Method.PATCH
case .DELETE: return Alamofire.Method.DELETE
}
}
func getEncodingFormat(methodType:encodingType)->Alamofire.ParameterEncoding{
switch(methodType){
case .URL: return Alamofire.ParameterEncoding.URL
case .JSON: return Alamofire.ParameterEncoding.JSON
case .URLEncodedInURL: return Alamofire.ParameterEncoding.URLEncodedInURL
}
}
}
//試試這個:
let urlencode = Alamofire.ParameterEncoding
print(MyStrings.BaseURl+urlString)
Alamofire.request(action, MyStrings.BaseURl+urlString, headers: headers, parameters:urlParams, encoding: isBody == true ? urlencode.JSON : urlencode.URLEncodedInURL)
.validate(statusCode: 200..<300)
.responseJSON { responseO in
if (responseO.result.error == nil) {
let responseModel = ResponseModel()
responseModel.responseCode = responseO.response?.statusCode
switch responseO.result {
case .Success(let data):
if (data .isKindOfClass(NSDictionary)){
responseModel.responseDictionary = data as! NSDictionary
}else if (data .isKindOfClass(NSArray)){
responseModel.customModel = data as! NSArray
}
responseModel.isSuccess = true
break
case .Failure(let error):
responseModel.isSuccess = false
print("Request failed with error: \(error)")
break
}
completionBlock(response: responseModel)
}
else {
debugPrint("HTTP Request failed: \(responseO.result.error?.userInfo)")
let responseModel = ResponseModel()
responseModel.responseCode = responseO.response?.statusCode
responseModel.isSuccess = false
completionBlock(response: responseModel)
}
}
您使用的是swift 2.x嗎? –
是的!我正在使用swift 2.3。 –
什麼是響應?你是從服務器或字符串獲取json對象嗎?校驗! –