Ios Can';无法在swift 3中获得正确的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 //

我在postman中尝试了这个特定的API,它返回了一个很好的结果

因此,我创建了一个参数

["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
vs
JsonRequest
(在POSTMAN中,后面的第一个是小写的)?@Larme错误只是它返回一个html页面,声明“运行时”错误。。不管是JsonRequest还是JsonRequest都不会对这个API调用产生影响。告诉我们这个错误可能会很有趣。否则,
JsonRequest
vs
JsonRequest
(在POSTMAN中,后面的第一个是小写的)?@Larme错误只是它返回一个html页面,声明“运行时”错误。。不管是JsonRequest还是JsonRequest都不会对这个API调用产生影响。OMG<你刚刚救了我一天!天哪,你刚刚救了我一天!