Alamofire - POST-запрос с JSON, дающим 301 - PullRequest
0 голосов
/ 05 июля 2018

Я хочу отправить запрос POST с JSON, я ожидаю объект JSON с auth_token и refresh_token в ответ. Мой код выглядит так:

let headers: HTTPHeaders = [
    "Authorization": "Basic " + data.toBase64() //data is just string needed for authentication
]

// this should be a JSON
let parameters = [
    "code": self.code,
    "grant_type": "authorization_code",
    "redirect_uri": "populi://callback"
]

Alamofire.request("https://populi.pl/api/v1/auth/token", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseString { response in
    print(response.request)
    print("\n3 RESPONSE : \(response)")
    print("\n3 POST : \(response.response)")
    print("\n3 DATA : \(response.data)")
    print("\n3 RESPONSE RESULT : \(response.result)")
    print("\n3 RESPONSE RESULT VALUE : \(response.result.value)")
    print("3 ERROR : \(response.error)")
}

Да, я много чего печатаю, потому что я новичок в сети. В ответ я постоянно перевожу 301. Почему? Я понятия не имею, что не так. Это неправильный JSON в параметрах или может быть что-то с перенаправлением? Я должен получить 200 и JSON в ответ.

Ответы [ 2 ]

0 голосов
/ 07 июля 2018

Я решил это с помощью "/" в конце URL запроса.

0 голосов
/ 06 июля 2018

попробуйте

func getData(){
 let todoEndpoint: String = Your url
        let params: Parameters = [yor parameters]
        let headers: [String : String] = [
            "Content-Type": "application/x-www-form-urlencoded",
        ]
 Alamofire.request(todoEndpoint, method: .post, parameters: params,headers: headers)
            .responseJSON { response in
                switch response.result {
                case .success:
                    let json = JSON(response.result.value as Any)
                    print(json)

                    break
                case .failure(let error):

                    print(error)
                }
        }
}
...