우리 서버에 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)")
}
}