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)