用swift发送获取请求。

问题描述 投票:0回答:1

当我发送一个请求时,请求发送了,但我发送的参数在服务器上不被识别,但在postman中,请求没有问题,可以正常工作。

这是我在客户端的回复:"需要国家"。

这是我的服务器端代码(nodejs-express)。

const app = express()
    app.use(bodyparser.urlencoded({ extended: false }));
    app.use(bodyparser.json({ type: 'application/json' }))
    app.use(expressvalidator())
    app.get('/cities', (req, res) => {
        req.checkBody('country', 'country is required').notEmpty()
        let errors = req.validationErrors()
        if (errors) {
            return res.status(422).json({
                message: errors[0].msg
            })
        }
        var cities = require('country-city').getCities(req.body.country);
        console.log(cities)
        return res.json({ cities: cities })
    })

和我的客户端代码(swift).当我发送请求时,请求被发送了,但我发送的参数在服务器上不被识别。

let params2 : Parameters = ["country" : "China"]
    Alamofire.request("http://172.20.10.3:4000/cities",method : .get, parameters: params2, encoding: URLEncoding.default).responseJSON { (jsonData) in
        do {
            print(jsonData)
        }catch {

        }
    }
node.js swift get request alamofire
1个回答
2
投票

你使用URLEncoding.default,数据会被添加到URL中,要用你设置的参数创建JSON,你必须使用JSONEncoding.default选项。

© www.soinside.com 2019 - 2024. All rights reserved.