Skip to content

조회 수 57 추천 수 0 댓글 8
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

먼저 서비스 클레스를 만들어서

class PhoneCertifyService : ServiceBase {

    

    /// 휴대폰 번호 가입여부 체크

    let PhoneNumberCheck_URL = "http://api.88care.co.kr/api/PhoneNumberCheck"

    /// 휴대폰 인증번호 발송

 

    

    /// 휴대폰 번호 가입여부 체크

    func PhoneNumberCheck(phone: String, _ completion: @escaping (PhoneCheckResponse?, Bool) -> Void) {

        let HINT_YN = "N"

        

        let params = PhoneCheckParams(PHONE: phone, HINT_YN: HINT_YN)

        

        AF.alamoFireRequest(url: PhoneNumberCheck_URL, httpMethod: .get, encoder: JSONParameterEncoder.default, params: params, completion)

 

    }

}

 

 

이런식으로 코드를 쓰고

 

뷰컨트롤러를 컨트롤 하는 클레스에서

/// call api for 휴대폰체크

    func CallPhoneCheckApi(){

        

        guard let session = AppDelegate.container.resolve(ISession.self) else { return }

        

        let PhoneCheckService = PhoneCertifyService(session: session)

        

        let phone = tfPhone.text ?? ""

        

        PhoneCheckService.PhoneNumberCheck(phone: phone) {

            [weak self] response, success in guard let response = response else { return }

            if response.ERROR == true {

                print("인증 실패")

                return

            }

            print("타니?")

            // self?.load(data: response.DATA)

            if(response.DATA.PHONE_CHECK_COUNT == 5){

                self!.performSegue(withIdentifier: "segueLoginInputPw", sender: nil)

                // 있을 때 비밀번호치는곳으로 넘길것

            }else if(response.DATA.PHONE_CHECK_COUNT == 0){

                self!.goAlert(Title: "존재하지 않는 번호입니다.")

            }

            

        }

        

    }

 

이런식으로 불러들어와서 썼는데

 

빌드는 되는데 api를 불러오면 콘솔창에서 api 통신 오류가 생깁니다.

봐서는 json으로 데이터를 보내기 까지는 되는거 같은데요.

 

"----------------------------------------------"

"Request is Null"

"Response: \n"

[Request]: None

[Result]: failure(Alamofire.AFError.urlRequestValidationFailed(reason: Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(37 bytes)))

Error: URLRequest validation failed due to reason: Invalid URLRequest: Requests with GET method cannot have body data:

{"PHONE":"01012341234","HINT_YN":"N"}

콘솔창에 이렇게 뜹니다.

에러내용 구글링 해보니

alamofire의 인코더를 URLEncoding.default로 바꾸라는데 그렇게 하면 바로 빌드페일을 벹어냅니다 ㅠㅠ

  • ?

    Alamofire 5 네요. 저도 이것 때문에 고생 좀 했었는데 ^^ 

    iOS에서 GET 메서드에는 body 메시지 태워서 보낼 수 없는 걸로 알고 있어요. 아마 Alamofire 가 아닌 OS 가 막는다고 했나 그랬습니다. 조사했었는데 기록을 남기질 않아서... 아마 비슷한 내용으로 구글링 하시면 나올 겁니다.

    저의 경우 body 메시지는 모두 POST 에 태워 보내고 있고 URLEncoding 이건 JSONEncoding 이건 문제없이 사용 중입니다. 

  • ?
    URLEncodedFormParameterEncoder로 인코더를 바꿨더니
    the App Transport Security policy requires the use of a secure connection 이 콘솔에 뜹니다.
    그래서 Info.plist에서
    https://blowmj.tistory.com/entry/iOS-iOS9-App-Transport-Security-%EC%84%A4%EC%A0%95%EB%B2%95
    이 링크보고

    App Transport Security를 전부 허용 또는 특정도메인 허용으로 바꾸니까 해결이 되더라고요...
    같은 어플을 안드로이드 버전으로도 개발하는데 안드로이드의 retrofit2 에선 문제가 없던 부분이어서 하나 알아갑니다
  • profile

    안녕하세요. 

     

    Alamofire get 방식으로는 Encoding Option이 정상적으로 사용이 되지를 않더라구요. 
    Encoding Option 자체를 빼보고 하셔도 동일하실까요? 
    저의 경우에는 encodingJSONEncoding.default 이런 옵션으로 사용해서 통신을 했었습니다. 
    요렇게도 한번 시도해보시겠어요?

    참고로 제가 사용하는 Full Request는 

    AF.request(urlPathString, method: .post, parameters: Params as? Parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
        switch response.result {
                case .success:
                    if let JSON = response.value {
                        
                    }
                    break
                case .failure(let error):
                    print(error)

                    break
                }
            }

    위와 같이 사용하고 있습니다.

     

    요청하는 방식이 조금 다른데, 저는 Alamofire 5.4.4를 사용하여 통신부를 구현하고 있습니다.

  • ?
    이런방법도 있었군요.
    인코딩 방식 URLEncodedFormParameterEncoder.default로 바꾸고
    info에서 App Transport Security에서
    특정도메인 허용하는걸로 해결했어용.
  • ?

    답변은 아니지만..

     

    Alamofire 버전 1부터 4까지 업데이트 되면 바로바로 최신화 하면서 사용하다가

    5 버전에서는 변화가 많아 업데이트 하려면 많은 부분을 손대야 했고,

    Swift 5 버전 대응이 늦어 이걸 계속 사용해야 하나.. 라는 생각에

    iOS SDK에서 기본으로 제공하는 URLSession으로 전체 변경하니 자주 업데이트 하지 않아도 되고

    사용법도 더 간단하니 좋더군요. 추천합니다.

     

    대신 본문 내용처럼 get/post에 따른 parameter/body도 명확히 구분해야 하고

    content-type도 직접 제어해야 하고 encoding 등에서 손이 좀 가요.

    그것만 초반에 잡아 놓으면 더이상 손댈 필요가 없습니다.

    참고하세요.

  • profile
    저도 무한 공감하는 부분입니다.

    개인적으로 초기에 순수하게 민들어놓은 라이브러리들을 레거시로 사용하는 부분이 차라리 수정도 용이하고, 변경되는 빈도도 적어서 이제 의존 코드보다 왠만한 레퍼런스를 가지고 있는게 좋을때라고 생각하고 있습니다.
  • ?
    iOS 메인 업데이트 시 반강제 업데이트를 해야 하는데, 라이브러리가 제대로 대응을 못하는 경우가 자주 생기더군요.
    UI 프레임워크 사용했다가 다 걷어낸 적도 있고, ObjectMapper도 업데이트가 제대로 안되고,
    특히 통신 라이브러리가 업데이트를 하지 않아버리면 골치 아프죠.
    그래서 이제는 제 기술범위를 벗어난 것 빼고는 SDK 기본 API를 이용해 직접 개발합니다.
    그게 나중에 손이 덜 가고 편하더라고요.
  • ?
    아직 쌩초보라 이런부분들을 잘 몰라요.... 배운적도 없고 회사에서 시작한지 얼마 안되었고 기술고문도 없는상태라 ㅠㅠ

  1. iOS개발질문방 이용안내 (등록포인트:300, 답변:500, 추천: 500)

    아이폰, 아이패드 관련 개발에 대한 질문을 남겨주세요. 이게시판에 질문 등록시 300 포인트, 답변등록시 500 포인트, 추천 500 포인트 적립됩니다. 좋은 질문이나 좋은답변이라고 생각되시면 꼭! 추천해서 답변자에게 추천포인트를 전달해주세요~ 코드입력방...
    Date2015.03.01 By아이폰데브 Reply1 Views1750 Votes7
    read more
  2. 다중파이차트? 다중도넛차트? 질문 드리겠습니다.

    charts 라이브러리는 단일 파이차트만 지원을 하고 여기서 가운데 공간을 주게 되면 도넛차트가 되는데요 문제는 이 도넛차트를 3중 또는 4중으로 그려야됩니다. 그러니까 첫번째 데이터셋 도넛차트 안에 두번째 데이터셋 도넛차트가 그려지고 두번째 데이터셋...
    Date2021.11.30 CategoryiOS 일반 ByjuniorDev Reply1 Views15 Votes0 new
    Read More
  3. rxswift 질문입니다

    아래와 같이 bind 함수 내에서 버튼 동작이 구현 되어 있습니다.  어느 뷰컨트롤러에서는 bind 함수가 잘 구동되고, 어느 뷰컨트롤러에선 브레이크 포인트에 조차 잡히지 않습니다. 혹시 어떤 이유 때문에 이러는지 알 수 있을까요??   ex) bottomButton.rx.tap
    Date2021.11.30 CategoryiOS 일반 By노력형개발자 Reply0 Views21 Votes0 new
    Read More
  4. CollectionViewCell에 Shadow 넣기 관련해서 질문있습니다!

       안녕하세요.스위프트 고수님들 ! 오늘은 강의를 따라서 CollectionViewCell에 shadow를 주는 연습을 하려했습니다. 그러나 Shadow를 넣는 코드를 넣으면 Shadow가 생기는게 아닌 Shadow로 설정한 색으로 셀의 색이 바뀝니다. 예시를 위해 다섯개의 Cell을 ...
    Date2021.11.29 CategoryiOS 일반 By미국산고릴라 Reply2 Views14 Votes0 newfile
    Read More
  5. 프레임워크 만들 때 외부 프레임워크

    안녕하세요 제가 개인 프레임워크를 만들고 있는데, 어려움이 있어 질문드립니다. 개인 프레임워크에 cocoapods으로 rxswift등 다른 라이브러리를 쓰고 있습니다. 제 개인 프레임워크를 빌드할 때 이러한 의존적인 라이브러리들을 같이 빌드해서, 프로젝트에서...
    Date2021.11.29 CategoryiOS 일반 By닉네임뭐로하지 Reply1 Views24 Votes0 new
    Read More
  6. VC dismiss 방법

    로그인화면에서 홈vc를 띄우려고 하는데, 로그인vc(네비게이션 컨트롤러)를 dismiss하고 홈vc를 애니메이션 true로 띄우고 싶은데 로그인 vc가 dismiss되지않습니다.   어떻게 해야하나요?
    Date2021.11.29 CategoryiOS 일반 By우솝이화 Reply0 Views21 Votes0 new
    Read More
  7. swift 공부 해서 앱 만들려고하는데, 초보자가 깊게 배울 수 있는 책 있나요? 추천해주시면 감사합니다..

    안녕하세요!!  스위프트 개발자님들 또는 공부중이신 선배님들 !! 혹시 스위프트 문법이가 ui등 공부할 때 참고하셨던 책 있으시면 추천해주실 수 있나요?   제가 스위프트 로 앱을 만들고 싶은데 스위프트 책 추천해주시면 감사합니다.ㅠ.ㅠ  자세하고 좋은 ...
    Date2021.11.28 CategoryiOS 일반 By야꿍이 Reply4 Views44 Votes0 new
    Read More
  8. nsurlconnection과 nsurlsession 방식의 차이점이 어떤건가요.

    nsurlconnection이 depreacted되면서 urlsession으로 변경을 해야하는데, 두 방식의 특징의 차이점은 어떤건가요?
    Date2021.11.24 CategoryiOS 일반 By닉크네임 Reply1 Views32 Votes0
    Read More
  9. UISceneSession 에서 session은 무엇을 의미하나요?

    UISceneSession 에서 session은 무엇을 의미하나요?  
    Date2021.11.24 CategoryiOS 일반 By이한이 Reply1 Views41 Votes0
    Read More
  10. 상수 저장 및 관리에 대한 질문

    안녕하세요, 선배님들! 앱에서 사용하는 리터럴들, 즉 상수를 관리에 대해서 질문이 있습니다.   리터럴(문자열 또는 숫자 등)을 그대로 사용하는 것보다 상수로 관리하는 것이 추후 협업(+ 유지보수)측면에서 좋다고 들었습니다. 내부 컨벤션이나 팀 회의 후...
    Date2021.11.24 Category기타 By다잘 Reply4 Views39 Votes0
    Read More
  11. Navigation Bar가 StoryBoard에서 보이지가 않아요 ㅠ

    안녕하세요 ios 초보 입니다...ㅠㅠ 고수님들의 조언이 필요해요   storyBoard에서 navigation Controller 를 추가하고 initial View, root View 설정까지 완료한 상태 입니다.   근데 첨부한 이미지의 빨간색 부분을 보면 네비게이션바 부분에 경계표시( 보통...
    Date2021.11.23 CategoryiOS 일반 Bykuwoo Reply2 Views50 Votes0 file
    Read More
  12. 신입 면접 공부 하는 방법

    면접공부를 하려고 하는데요  반드시 해야하는 부분이나 커리큘럼이 있을까요? 네트워킹 컴퓨터 구조 운영체제 데이터베이스도 해야할까요? 추천 서적이나 강의 알려도 감사하겠습니다..  
    Date2021.11.23 CategoryiOS 일반 By이한이 Reply0 Views44 Votes0
    Read More
  13. Xcode 에서 만든 앱을 친구에게 주고 싶습니다.(스토어에 등록하지 않고)

    안녕하세요.   안드로이드의 경우 xxx.apk 파일을 만들어서 메일 등으로 타인에게 보내서 설치를 할 수가 있습니다. 간단하게 만든 iOS 용 앱을 이렇게 하는 방법이 있으면 좀 알려 주세요. 현재... 개발자 등록 되어 있고, 몇 개의 앱을 스토어에 등록을 했습...
    Date2021.11.23 CategoryXcode By청소부 Reply5 Views59 Votes0
    Read More
  14. WKWebView에서 ajax 사용이 불가능 한가요?

    스위프트로 개발을 하고 있습니다.   WKWebView에서 html파일을 로드했습니다.   그 안에 들어있는 js파일 중 $("#btn_a").click(function(){ 폰트 사이즈 키워줘~ }) 위와 같은 제이쿼리는 실행이 되는 것을 확인하였습니다.   그렇지만 아래와 같은 ajax는 ...
    Date2021.11.22 CategoryiOS 일반 By앱등앱등 Reply2 Views42 Votes0
    Read More
  15. TableViewController에서 tableHeaderView와 sectionHeader spacing

    TableViewController를 상속받아 클래스를 구현하고있습니다. 혹시 tableHeaderView와 sectionHeader 사이에 spacing을 주려면 어떤 프로퍼티에 접근해야 할까요?  
    Date2021.11.22 CategoryiOS 일반 By우솝이화 Reply2 Views34 Votes0
    Read More
  16. UILabel 기울기? 외형? 변화 하는 방법

     UILabel 기울기 관련해서 2가지 궁금한게 있습니다     1. 폰트 기울기를 적용하려면 꼭 해당 "폰트"가 필요한가요? 예를 들어 배민 폰트 적용 후 기울기를 적용하려면 "배민 기울기" 폰트가 또 따로 필요한가요?   2. 1번 사항에서 기울기 폰트가 없을 시 ...
    Date2021.11.18 CategoryiOS 일반 ByRagdoll Reply4 Views62 Votes0 file
    Read More
  17. 신입 6시간 과제제출 보는데 무엇을 공부해야 할까요..

    신입이고 6시간 과제제출을 본다는데 무엇을 준비하는걸 추천하시나요?
    Date2021.11.17 CategoryiOS 일반 Byglorylk Reply1 Views73 Votes0
    Read More
  18. [레이아웃] 스크롤뷰 오토레이아웃 질문

    view.addSubview(scrollView)         scrollView.snp.makeConstraints { make in             make.edges.equalToSuperview()         }                  scrollView.addSubview(contentView)         contentView.snp.makeConstraints { make in           ...
    Date2021.11.17 CategoryiOS 일반 By우솝이화 Reply1 Views32 Votes0
    Read More
  19. alamofire로 통신할 때 get 방식 못 받는 거 질문드립니다.

    먼저 서비스 클레스를 만들어서 class PhoneCertifyService : ServiceBase {          /// 휴대폰 번호 가입여부 체크     let PhoneNumberCheck_URL = "http://api.88care.co.kr/api/PhoneNumberCheck"     /// 휴대폰 인증번호 발송            /// 휴대폰 ...
    Date2021.11.17 CategoryiOS 일반 ByjuniorDev Reply8 Views57 Votes0 update
    Read More
  20. 날짜 기간범위 출력

                    시작날짜와 끝날짜 범위 계산 for문으로 돌리다가    쫌 편한게 있나 싶어서 찾다가...   파이썬 코드를 찾았는데요...   swift 에도 저렇게 기간을 넣으면 날짜별로 출력되는 라이브러리나 함수가  있나요?                
    Date2021.11.16 CategoryiOS 일반 ByNextLevel Reply1 Views22 Votes0 file
    Read More
  21. switch와 enum, func 관련 질문 드립니다!!! 도와주세요ㅠㅠ

    import UIKit   var totalScore = 0 var round1Score = 0 var round2Score = 0 var round3Score = 0 var round4Score = 0 var round5Score = 0 var round6Score = 0 var round7Score = 0 var round8Score = 0 var round9Score = 0 var round10Score = 0   func...
    Date2021.11.13 CategorySwift문법 By김수민 Reply2 Views67 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 113 Next
/ 113

미답변질문들

아이폰데브 미답변질문들

운영진홈페이지

미노웍스 홈페이지

불편사항접수

아이폰데브 불편사항접수

구독하기

아이폰데브구독하기

후원하기

아이폰데브 후원명단
아이폰데브 후원하기

아이폰데브 모바일앱

아이폰데브 모바일앱

Socail Media

회원수   전체 : 12,321   오늘 : 0   어제 : 7   |   방문자수   전체 : 2,568,173   오늘 : 133   어제 : 1,037   |   페이지뷰   전체 : 39,910,701   오늘 : 551   어제 : 5,454  

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소