相关疑难解决方法(0)

如何在swift中使用BODY发送POST请求

我正在尝试使用Alamofire快速发布一个关于身体的帖子请求.

我的json身体看起来像:

{
    "IdQuiz" : 102,
    "IdUser" : "iosclient",
    "User" : "iosclient",
    "List":[
        {
        "IdQuestion" : 5,
        "IdProposition": 2,
        "Time" : 32
        },
        {
        "IdQuestion" : 4,
        "IdProposition": 3,
        "Time" : 9
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试let list使用NSDictionnary,它看起来像:

[[Time: 30, IdQuestion: 6510, idProposition: 10], [Time: 30, IdQuestion: 8284, idProposition: 10]]
Run Code Online (Sandbox Code Playgroud)

我使用Alamofire的请求看起来像:

Alamofire.request(.POST, "http://myserver.com", parameters: ["IdQuiz":"102","IdUser":"iOSclient","User":"iOSClient","List":list ], encoding: .JSON)
            .response { request, response, data, error in
            let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding)
                println(dataString)
        }
Run Code Online (Sandbox Code Playgroud)

请求有一个错误,我相信问题是在字典列表,因为如果我提出一个没有列表的请求它工作正常,所以任何想法?


我尝试过建议的解决方案,但我遇到了同样的问题:

 let json = ["List":list,"IdQuiz":"102","IdUser":"iOSclient","UserInformation":"iOSClient"] …
Run Code Online (Sandbox Code Playgroud)

json put swift alamofire

81
推荐指数
7
解决办法
12万
查看次数

Alamofire 4 Swift 3 ParameterEncoding Custom

我将我的项目更新为Swift 3和Alamofire 4.我使用的是自定义编码,但它已改为其他编码方法.我无法找到替代/等同于此:

alamoFire.request(urlString, method: HTTPMethod.post, parameters: [:], encoding: .Custom({
        (convertible, params) in

        let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
        let data = (body as NSString).data(using: String.Encoding.utf8)
        mutableRequest.httpBody = data
        return (mutableRequest, nil)

    }), headers: headers()).responseJSON { (responseObject) -> Void in

        switch responseObject.result {
        case .success(let JSON):
            success(responseObject: JSON)

        case .failure(let error):
            failure(error: responseObject)
        }
    }
Run Code Online (Sandbox Code Playgroud)

我也试过通过制作URLRequest对象和简单的请求它也给我错误

var request = URLRequest(url: URL(string: urlString)!)
    let data = (body as NSString).data(using: String.Encoding.utf8.rawValue)
    request.httpBody = data
    request.httpMethod = "POST"
    request.allHTTPHeaderFields = headers()

    alamoFire.request(request).responseJSON { …
Run Code Online (Sandbox Code Playgroud)

ios alamofire swift3

9
推荐指数
2
解决办法
1万
查看次数

如何使用xml Body发送带有alamofire的请求

我在我的项目中安装了Alamofire,现在这就是我所做的.

我安装了邮差,我把我的网址和内部的一个xml对象,我得到了我的结果.

这是我对邮递员所做的一切

在此输入图像描述

我现在如何使用Alamofire或SWXMLHash发送它,因为我发送邮件

提前致谢!

编辑

我从另一个问题尝试了这个:

 Alamofire.request(.POST, "https://something.com" , parameters: Dictionary(), encoding: .Custom({
            (convertible, params) in
            let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest

            let data = (self.testString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
            mutableRequest.HTTPBody = data
            return (mutableRequest, nil)
        }))


    .responseJSON { response in


    print(response.response) 

    print(response.result)   


    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有发送任何东西

这是日志:

可选({URL:https: //something.com } {状态代码:200,headers {Connection ="keep-alive";"Content-Length"= 349;"Content-Type"="application/xml";日期="Wed,2016年11月2日21:13:32 GMT"; Server = nginx;"Strict-Transport-Security"="max-age = 31536000; includeSubDomains";}})

失败

编辑

如果没有简单的添加,请不要忘记参数参数:参数:Dictionary()

xml ios swift alamofire swxmlhash

3
推荐指数
2
解决办法
6167
查看次数

标签 统计

alamofire ×3

ios ×2

swift ×2

json ×1

put ×1

swift3 ×1

swxmlhash ×1

xml ×1