首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Post方法请求Alamofire

Post方法请求Alamofire
EN

Stack Overflow用户
提问于 2016-12-27 13:19:21
回答 4查看 6.2K关注 0票数 3

我正在使用Swift 3和Alamofire 4.0。

我想创建类似于邮递员请求的Alamofire POST请求,如截图中所示:

我试过这些代码行:

代码语言:javascript
复制
var parameters:  [String: Any] = [
    "client_id" : "xxxxxx",
    "client_secret" : "xxxxx",
    "device_token" : "xxxx",
    "fullname" : "xxxxx",
    "gender": "xxx"
]

Alamofire.request(url, method: .post, parameters: parameters).responseJSON { response in
print(response)
}

但我发现了一个错误:

如何在Swift 3中使用Alamofire实现以身体为形式的POST请求?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-27 13:29:55

  • Swift 3.0 . Alamofire .多部分表单数据上载工作代码*

//参数

代码语言:javascript
复制
let params: [String : String] =
   ["UserId"    : "\(userID)",
    "FirstName" : firstNameTF.text!,
    "LastName"  : lastNameTF.text!,
    "Email"     : emailTF.text!
   ]

//和上传

代码语言:javascript
复制
Alamofire.upload(
        multipartFormData: { multipartFormData in

            for (key, value) in params
            {
                    multipartFormData.append((value.data(using: .utf8))!, withName: key)
            }
    },
        to: url,
        encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseJSON { response in
                    debugPrint(response)

                }
                upload.uploadProgress(queue: DispatchQueue(label: "uploadQueue"), closure: { (progress) in


                })

            case .failure(let encodingError):
                print(encodingError)
            }
    }
    )

如果你还对此有意见,请告诉我。

票数 0
EN

Stack Overflow用户

发布于 2016-12-27 13:26:03

经过太多的尝试,我成功了,所以试试这个

代码语言:javascript
复制
override func viewDidLoad() {
        super.viewDidLoad()


        let parameters: Parameters = ["client_id": "1","user_token":"xxxxxxxx"]
                // Do any additional setup after loading the view, typically from a nib.
        let url = "http://xxxxxxxxxxx/index.php/Web_api/get_client_profile"
        //let timeParameter =  self.getLastTimeStamp()
        self.request = Alamofire.request(url, method: .post, parameters:parameters)
        if let request = request as? DataRequest {
            request.responseString { response in
                //PKHUD.sharedHUD.hide()
                do{
                    let dictionary = try JSONSerialization.jsonObject(with: response.data!, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary
                    print(dictionary)

                }catch{

                }
            }
        }
    }

    var request: Alamofire.Request? {
        didSet {
            //oldValue?.cancel()
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2016-12-27 13:31:32

您可以使用Alamofire发布请求。

代码语言:javascript
复制
let url = ""
let headers    = [ "Content-Type" : "application/json"]
let para : Parameters = [ "data" : JSONObject]
Alamofire.request(url, method: .post, parameters: para, encoding: JSONEncoding.default, headers : headers)
    .responseJSON { response in

        print(response)
        print(response.result)

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41345967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档