【问题标题】:Alamofire POST Parameter with CRUD / Rest带有 CRUD/Rest 的 Alamofire POST 参数
【发布时间】:2014-12-20 00:28:10
【问题描述】:

我想将一些 POST 参数添加到使用 CRUD 示例作为基础的 Alamofire 请求中。我无法发送我的参数。

enum Router: URLRequestConvertible {

static var baseURLString: String = NSUserDefaults.standardUserDefaults().objectForKey("url") as String!

case GetForms()
case Login(String, String)

var method: Alamofire.Method {
    switch self {
    case .GetForms:
        return .GET
    case .Login:
        return .POST
    default:
        return .GET
    }
}

var path: String {
    switch self {
    case .GetForms():
        return "getforms"
    case .Login(let email, let password):
        return "login"
    default:
        return ""
    }
}

var URLRequest: NSURLRequest {
    let URL = NSURL(string: Router.baseURLString)!
    let mutableURLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent(path))

    switch self {
    case .GetForms():
        let token: String = NSUserDefaults.standardUserDefaults().objectForKey("apikey") as String!
        mutableURLRequest.HTTPMethod = method.rawValue
        mutableURLRequest.setValue(token, forHTTPHeaderField: "Authorization")
        return mutableURLRequest
    case .Login(_, let parameters):

// HERE I WANT TO ADD THE 2 POST Paramers from the Login Function

        return mutableURLRequest
    default:
        return mutableURLRequest
    }

}
}

但这不起作用。生病尝试更改为示例代码,但我真的不明白如何添加简单的 2 Post 参数。当我将它用作简单请求时,它应该是一样的。喜欢:

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["email": "admin", "password": "password"])
     .response { (_, _, _, error) in
              println(error)
     }

任何帮助将不胜感激!

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:

    您可以通过在 Alamofire ParameterEncoding 实例上调用 encode 方法将参数应用于您的 mutableURLRequest。如果是标准的 POST 请求,您需要使用 URL 案例:

    switch self {
    case .GetForms():
        // ...
    
    case .Login(let email, let password):
        // do any URL request setup first
        mutableURLRequest.HTTPMethod = method.rawValue
    
        // set up parameters
        let parameters = ["email": email, "password": password]
    
        // return first element of tuple from encode
        return ParameterEncoding.URL.encode(mutableURLRequest, parameters).0
    
    default:
        return mutableURLRequest
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 2018-05-07
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多