在 swift 中使用 alamofire 发送获取请求
Send get request with alamofire in swift
当我发送请求时,请求发送了,但是我发送的参数在服务器上无法识别
但是在邮递员中请求没问题并且工作正常
这是我在客户端的回复:'country is required'
这是我的服务器端代码 (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 {
}
}
您使用 URLEncoding.default 数据将添加到 URL,要使用您设置的参数创建 JSON,您必须使用选项 JSONEncoding.default。
当我发送请求时,请求发送了,但是我发送的参数在服务器上无法识别 但是在邮递员中请求没问题并且工作正常
这是我在客户端的回复:'country is required'
这是我的服务器端代码 (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 {
}
}
您使用 URLEncoding.default 数据将添加到 URL,要使用您设置的参数创建 JSON,您必须使用选项 JSONEncoding.default。