gpt4 book ai didi

json - 使用 Json for Swift 3 的 zoho books 的 POST 方法

转载 作者:行者123 更新时间:2023-11-30 12:32:41 25 4
gpt4 key购买 nike

我正在尝试将 Zoho Books API 包含在我的 swift 应用程序中。我想使用 POST 方法创建一个项目,但我一直收到一条错误消息,指出我的 JSONString 错误。

以下是 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"
}

这是我做的。我感觉我的 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)
}
}

答案:

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

我很好地发出了 GET 请求,因此我相信在我的 swift 应用程序中使用 POST 方法也应该是可以管理的。

非常感谢您的帮助

问候

最佳答案

更新:

我找到的解决方案是使用字符串参数而不是 JSON 参数发送 post 请求。

如果您有替代解决方案,我很感兴趣,但我使用的解决方案有效......

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

关于json - 使用 Json for Swift 3 的 zoho books 的 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43299948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com