2017-04-08 2 views
0

私は迅速なアプリケーションの中にZoho Books APIを含めようとしています。 POSTメソッドを使用してアイテムを作成したいと思いますが、JSONStringが間違っているというエラーメッセージが表示され続けます。ここでJoho Books for Swift 3のPOSTメソッド

は、POSTメソッドを使用して、送信するためにどのようなZohoのドキュメント要求は、作成するために、アイテムに、次のとおりです。ここで

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メソッドを使用して管理しなければなりませんと信じて、私はGETリクエストを作成するだけでなく、管理

["code": 4, "message": Invalid value passed for 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) 
       } 
     } 

と答え...私JSONStringが期待される形式を満たしてdoesntの何とか感知します私の迅速なアプリも同様です。

あなたの助けに感謝

よろしく

答えて

0

UPDATE:私が見つけ

ソリューションは、文字列パラメータの代わりに、JSONのいずれかを使用してPOSTリクエストを送信することによりでした。あなたは別の解決策を持っている場合は

、私はinterrestedだ、まだ私は作品を使用して1 ...

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) 
      } 
    } 
}