Ios Can';无法在swift 3中获得正确的api调用
我在postman中尝试了这个特定的API,它返回了一个很好的结果 因此,我创建了一个参数Ios Can';无法在swift 3中获得正确的api调用,ios,swift,api,Ios,Swift,Api,我在postman中尝试了这个特定的API,它返回了一个很好的结果 因此,我创建了一个参数 ["JsonRequest": "{\"header\":\"GetLocationListReq\",\"accessKey\":\"fakeKey\"}"] 但是,当我在Xcode项目中使用swift和alamofire调用此API时传递此参数时,总会返回一个错误 对于那些感兴趣的人,我的apiRouter是 // // WINAPIRouter.swift // Winner21 //
["JsonRequest": "{\"header\":\"GetLocationListReq\",\"accessKey\":\"fakeKey\"}"]
但是,当我在Xcode项目中使用swift和alamofire调用此API时传递此参数时,总会返回一个错误
对于那些感兴趣的人,我的apiRouter是
//
// WINAPIRouter.swift
// Winner21
//
// Created by Lin Hairui on 27/4/17.
// Copyright © 2017 Pioneers & Leaders (Publishers). All rights reserved.
//
import Foundation
import Alamofire
enum WINAPIRouter : URLRequestConvertible {
static let baseURL = Constant.baseURL
case get(String)
case create([String:Any],String?)
case delete(String)
func asURLRequest() throws -> URLRequest {
var method : HTTPMethod {
switch self {
case .get:
return HTTPMethod.get
case .create:
return HTTPMethod.post
case .delete:
return HTTPMethod.delete
}
}
let params:(Dictionary<String, Any>?) = {
switch self {
case .get, .delete:
return nil
case .create(let params, _):
var fieldParams = params
fieldParams["accessKey"] = Constant.kAPIAccessKey
let jsonData: NSData
do {
jsonData = try JSONSerialization.data(withJSONObject: fieldParams, options: JSONSerialization.WritingOptions()) as NSData
let jsonString = NSString(data: jsonData as Data, encoding: String.Encoding.utf8.rawValue) as! String
let authParam : [String : Any] = [
"JsonRequest" : jsonString
]
print("google was here \(authParam)")
return authParam
} catch _ {
print ("JSON Failure")
}
return nil
}
}()
let url : URL = {
return URL(string: Constant.baseURL)!
}()
var urlRequest = URLRequest(url: url)
// urlRequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
// urlRequest.addValue("application/json", forHTTPHeaderField: "Accept")
urlRequest.httpMethod = method.rawValue
print("facebook was here = \(urlRequest.httpMethod!)")
let encoding = JSONEncoding.default
print("yahoo was here \(params)")
//let facejsonData = try! JSONSerialization.data(withJSONObject: params!, options: JSONSerialization.WritingOptions())
return try encoding.encode(urlRequest, with: params!)
}
}
我认为API的响应不是JSON,请尝试使用如下URL编码
Alamofire.request(path, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: nil) . responseString(completionHandler: { ( dataResponse ) in
/// print response
})
我认为API的响应不是JSON,请尝试使用如下URL编码
Alamofire.request(path, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: nil) . responseString(completionHandler: { ( dataResponse ) in
/// print response
})
告诉我们这个错误可能很有趣。否则,
JsonRequest
vsJsonRequest
(在POSTMAN中,后面的第一个是小写的)?@Larme错误只是它返回一个html页面,声明“运行时”错误。。不管是JsonRequest还是JsonRequest都不会对这个API调用产生影响。告诉我们这个错误可能会很有趣。否则,JsonRequest
vsJsonRequest
(在POSTMAN中,后面的第一个是小写的)?@Larme错误只是它返回一个html页面,声明“运行时”错误。。不管是JsonRequest还是JsonRequest都不会对这个API调用产生影响。OMG<你刚刚救了我一天!天哪,你刚刚救了我一天!