티스토리 뷰

728x90
반응형

우선 302 는 redirection status code입니다. 

 

크롬 > 개발자도구에서는 Status Code를 302로 받는데, 

PostMan과 Alamofire는 200으로 받더라구요. 

아마 알아서 redirect를 해줘서 그런 것 같아요ㅠㅠ

 

반면 크롬 > 개발자 도구 찍어보면 

redirect url로 접속한 것도 각각 로그로 찍혀요-!!

 

status code가 302로 떨어질때 그때 주는 response header 중에

제가 꼭 필요한 값이 있는데 그것을 꺼내써야해서 

PostMan과 Alamofire도 302로 코드를 받도록 변경해보겠습니다-!!! 

 

 

[1] PostMan

PostMan에서는 200으로 받아요

 

 

PostMan > Preference > Settings에 가보면 

Automatically follow redirects가 켜져있어서 그럽니다.

 

 

이걸 꺼주시고 

 

 

다시 요청해보면..!! 302로 잘받습니다. 

 

[2] Alamofire

 

Alamofire도  200으로 받아요 

AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
    .responseString { (response) in
        print(response.response?.statusCode)  // 200
        print(response.response?.headers["Location"]) // nil
}

 

근데 redirection behavior를 doNotFollow 로 설정해주면..!!

302로 받습니다 (감동,,)

        let redirector = Redirector(behavior: .doNotFollow)
        
        AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
            .redirect(using: redirector)
            .responseString { (response) in
                print(response.response?.statusCode)  // 302
                print(response.response?.headers["Location"]) // 값이있음
        }
반응형
댓글