The problem is that you're using URLEncoding.default
. Alamofire interprets URLEncoding.default
differently depending on the HTTP method
you're using.
For GET
, HEAD
, and DELETE
requests, URLEncoding.default
encodes the parameters as a query string and adds it to the URL, but for any other method (such as POST
) the parameters get encoded as a query string and sent as the body of the HTTP request.
In order to use a query string in a POST
request, you need to change your encoding
argument to URLEncoding(destination: .queryString)
.
You can see more details about how Alamofire handles request parameters here.
Your code should look like:
_url = "http://localhost:8080/"
let parameters: Parameters = [
"test": "123"
]
Alamofire.request(_url,
method: .post,
parameters: parameters,
encoding: URLEncoding(destination: .queryString),
headers: headers)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…