2017-04-19 14 views
0

webservice, userName & 암호를 사용하여 양식 데이터를 게시하려고하는데 응답으로 "서버에 연결할 수 없습니다."라는 오류가 표시됩니다.Swift에서 POST 요청으로 양식 데이터를 보내는 방법 3

POST 요청에 양식 데이터를 보내주십시오.

요청에 값을 추가하려했으나 요청에 누락 된 값이있을 수 있습니다. 도와주세요!

Thats the POSTMAN response

+0

는 또한이 일을 위해 AlamoFire 포드 체크 아웃 마무리 기능 에이 n 쉬운 방법. – TheValyreanGroup

+0

@TheValyreanGroup Alamofire를 사용했지만 같은 문제가 발생했습니다. API는 POSTMAN에서 잘 작동합니다. –

+0

@ TheValyreanGroup : 내 코드 : let urlString = "https://xxx.xxxx.xxxx.xxx/login" let herers = [ "Content-Type": "application/form-data " ] Alamofire.request (urlString, 메서드 : .post, 매개 변수 : ["사용자 이름 ": 사용자 이름,"암호 ": 비밀번호], 인코딩 : JSONEncoding.default, 헤더 : 헤더) 스위치 응답 .result는 { 경우는 일단 .success : 인쇄 (오류) : 인쇄 (응답) 휴식 경우 .failure (오류)하자} } –

답변

3

내 호출 API 클래스

class ApiService 
{ 
    static func getPostString(params:[String:Any]) -> String 
    { 
     var data = [String]() 
     for(key, value) in params 
     { 
      data.append(key + "=\(value)") 
     } 
     return data.map { String($0) }.joined(separator: "&") 
    } 

    static func callPost(url:URL, params:[String:Any], finish: @escaping ((message:String, data:Data?)) -> Void) 
    { 
     var request = URLRequest(url: url) 
     request.httpMethod = "POST" 

     let postString = self.getPostString(params: params) 
     request.httpBody = postString.data(using: .utf8) 

     var result:(message:String, data:Data?) = (message: "Fail", data: nil) 
     let task = URLSession.shared.dataTask(with: request) { data, response, error in 

      if(error != nil) 
      { 
       result.message = "Fail Error not null : \(error.debugDescription)" 
      } 
      else 
      { 
       result.message = "Success" 
       result.data = data 
      } 

      finish(result) 
     } 
     task.resume() 
    } 
} 

때 사용이

ApiService.callPost(url: url, params: params, finish: finishPost) 

func finishPost (message:String, data:Data?) -> Void 
{ 
    do 
    { 
     if let jsonData = data 
     { 
      let parsedData = try JSONDecoder().decode(Response.self, from: jsonData) 
      print(parsedData) 
     } 
    } 
    catch 
    { 
     print("Parse Error: \(error)") 
    } 
} 
+0

감사합니다. @Sofia Lu –