[네트워킹] iOS Swift Alamofire 요청/응답하기(form-data형식)
iOS/Swift

[네트워킹] iOS Swift Alamofire 요청/응답하기(form-data형식)

우리 서버에 json 형식으로 폰번호 넘겼더니 자꾸 변수 부족 에러 코드 뜸 -> 서버팀에 물어봄 -> 서버에 데이터 보낼 때 json 말고 form-data 형식으로 보내 달라고 함 -> 그런데 Alamofire에 form-data 형식으로 업로드할 수 있는 메소드가 있었다!!!!

 

평소 하던 것처럼(line 8에 주석 처리한 부분) request를 보내는 메소드가 아니라, 서버에 업로드하는 개념인 듯. 아무튼 multipartFormData 활용해서 휴대폰 번호 넣었더니 제대로 요청이 전송됐다. 🥺

 

//MARK: SMS request
        // API 호출
        let paramForSMS:Parameters = ["userphonenum": phoneField.text]
        let url = "여기에 url 주소 넣으세요!!!"
        let call = AF.upload(multipartFormData: { multipartFormData in
            multipartFormData.append((self.phoneField.text!).data(using: .utf8)!, withName: "userphonenum")
        }, to: url)
        //let call = AF.request(url, method: HTTPMethod.post, parameters: paramForSMS, encoding: MultipartFormData.self as! ParameterEncoding)
        
        // 서버 응답값 처리
        call.responseJSON { res in
            // JSON 형식으로 값이 제대로 전달되었는지 확인
            guard let jsonObject = try! res.result.get() as? [String:Any] else {
                self.alert("서버 호출 과정에서 오류가 발생했습니다.")
                print("서버 호출 오류")
                return
            }
            // 응답 코드 확인. 0(true)이면 성공
            let resultCode = jsonObject["result"] as! String
            if resultCode == "success" {
                self.alert("인증 번호가 전송되었습니다.")
                print("sms 전송 success with \(resultCode)")
                
            } else { // 응답 코드가 true가 아닐 때에는 실패
                self.alert("휴대폰 번호를 확인해 주세요.")
                print("sms 전송 실패 with \(resultCode)")
            }
            
        }

 

 

너무 신나서 멋지게 꾸밈