2017-04-08 7 views
0

신속한 응용 프로그램 내에 Zoho Books API를 포함하려고합니다. POST 메서드를 사용하여 항목을 만들고 싶지만 내 JSONString이 잘못되었다는 오류 메시지가 계속 나타납니다.Json for Swift 3를 사용하는 zoho 북의 POST 메서드

다음
https://books.zoho.com/api/v3/items 
    ?authtoken=e07119171812c29b3a0dacdb79a57e3f 
    &organization_id=10234695 
    &JSONString={ 
     "name": "Hard Drive", 
     "description": "500GB, USB 2.0 interface 1400 rpm, protective hard case.", 
     "rate": 120.00, 
     "account_id": "460000000000388", 
     "tax_id": "460000000027005" 
} 

내가 만들 것입니다 : 여기

은 조호 문서 요청을 만들려면 및 항목에서, POST 방법을 사용하여 보낼 것입니다.

["code": 4, "message": Invalid value passed for JSONString] 

나는 그래서 그것을 내 POST 메소드를 사용하는 관리해야한다 생각 GET 요청을 잘 관리 : 어떻게 든 예상되는 형식을 충족 나던 내 JSONString ...

let postData = [ 
      "authtoken" : "ZZZZZZZZZZZZZZZZZZZZZZ", 
      "organization_id" : "XXXXXXXXXXX", 
      "JSONString" : 
       [ 
       "name": "Hard Drive", 
       "description": "500GB, USB 2.0 interface 1400 rpm, protective hard case.", 
       "rate": 120.00, 
       "account_id": "460000000000388", 
       "tax_id": "460000000027005" 
       ] 
      ] as [String : Any] 

     var request = URLRequest(url: NSURL(string:"https://books.zoho.eu/api/v3/items")! as URL) 
     request.httpMethod = "POST" 
     request.httpBody = try! JSONSerialization.data(withJSONObject: postData, options: []) 
     request.addValue("application/json", forHTTPHeaderField: "Content-Type") 

     Alamofire.request(request).responseJSON 
      { response in 
       if let JSON = response.result.value { 
        let zohoResponse: [String: AnyObject] = JSON as! [String : AnyObject] 
        print(zohoResponse) 
       } 
     } 

그 대답을 감지 내 신속한 응용 프로그램. 당신의 도움에 대한

많은 감사

감사

답변

0

업데이트 : 내가 찾은

이 솔루션은 문자열 매개 변수 대신 JSON의 하나를 사용하여 POST 요청을 보내였다. 당신은 대체 솔루션이있는 경우

, 내가 interrested하고있어, 아직 내가 작품을 사용 하나 ...

class func sendPostZoho(url : String, dataArray : [String: AnyObject] , completionHandler : @escaping ([String : AnyObject])->()) { 
    let jsonstring = try! JSONSerialization.data(withJSONObject: dataArray, options: []) 
    let convertedString = String(data: jsonstring, encoding: .utf8) 

    let percentageString = convertedString?.replacingOccurrences(of: "\"", with: "%22") 
    var request3 = URLRequest(url: URL(string: url)!) 
    request3.httpMethod = "POST" 
    let StringtoPost = "&JSONString=" + percentageString! 

    request3.httpBody = StringtoPost.data(using: .utf8) 

    Alamofire.request(request3).responseJSON 
     { response in 

      if let JSON = response.result.value { 
       let DictionnaryResponse: [String: AnyObject] = JSON as! [String : AnyObject] 
       completionHandler(DictionnaryResponse) 
      } 
    } 
}