如何使用CRUD example作爲Base,以JSON格式將POST參數設置爲Alamofire請求?我無法發送我的參數。Alamofire CRUD POST JSON
下面是我的路由器發電機:
fileprivate enum Router: URLRequestConvertible {
case login(reqData: Data)
case preferencesIndex()
case preferencesUpdate(parameters: Parameters)
static let baseURLString = "http://test.com"
var method: HTTPMethod {
switch self {
case .login, .preferencesIndex:
return .get
case .preferencesUpdate:
return .post
}
}
var path: String {
switch self {
case .login:
return "/login"
case .preferencesIndex:
return "/preferences/list"
case .preferencesUpdate:
return "/preferences/update"
}
}
// MARK: URLRequestConvertible
func asURLRequest() throws -> URLRequest {
let url = try Router.baseURLString.asURL()
let paramsDefault: Parameters = ["_format" : "json", "_authorization" : "testkey"]
var urlRequest = URLRequest(url: url.appendingPathComponent(path))
urlRequest.httpMethod = method.rawValue
urlRequest = try URLEncoding.default.encode(urlRequest, with: paramsDefault)
switch self {
case .preferencesUpdate(let parameters):
//POST JSON
let data = try JSONSerialization.data(withJSONObject: parameters, options: [])
urlRequest.httpBody = data
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
default:
break
}
return urlRequest
}
}
我收到的錯誤如下:
Request failed with error: JSON could not be serialized because of error: The data couldn’t be read because it isn’t in the correct format.
我想我的問題是系列化的,因爲我送參數Parameters
型...
是否使用SWIFT 3? –
是的,我使用SWIFT 3 –
我想: 1)生成URL 例如:http://test.com/preferences/update?_format=json&_authorization=testkey 鹼基的URL:http://測試。 COM 路徑:/首選項/更新 - 查詢字符串:_format,授權 2)發送JSON: [ 「數據」: 「項目」:[ 「名字」: 「items_ids」, 「價值」: 「1,2,3」]]]] 但是我不能在我的路由器發生器中做這個.. –