gpt4 book ai didi

json - AlamoFire 请求 Google Cloud Prediction API iOS 解析错误

转载 作者:行者123 更新时间:2023-11-30 13:13:11 24 4
gpt4 key购买 nike

我正在使用 AlamoFire 对 Google Cloud Prediction 中的一个模型进行 POST 查询。每当我发送请求时,都会收到一条错误消息:此 API 不支持解析表单编码输入。
经过一番研究后,我发现我需要将 Content-Type HTTP header 设置为“application/json”。希望您能找到我在提出请求时错过的东西。这是我的代码:

let parameters = [
"access_token" : accessToken,
"input": [
"csvInstance": [
"This is very positive"
]

]
]
Alamofire.Manager.sharedInstance.session.configuration
.HTTPAdditionalHeaders?.updateValue("application/json",
forKey: "Accept")
Alamofire.Manager.sharedInstance.session.configuration
.HTTPAdditionalHeaders?.updateValue("application/json",
forKey: "Content-Type")
Alamofire.request(.POST, "https://www.googleapis.com/prediction/v1.6/projects/mailanalysis-1378/trainedmodels/10kTweetData/predict", parameters: parameters).responseJSON { (response) in
if let JSON = response.result.value {
print("JSON: \(JSON)")
//print("refresh token = " + auth.accessToken)
}
}

最佳答案

如果有人仍在寻找答案,我设法从我的 iOS 客户端访问 GooglePredictionAPI,而无需使用 Alamofire:

    var accessToken: String?

GIDSignIn.sharedInstance().currentUser.authentication.getTokensWithHandler { (authentication, error) in

if let err = error {
print(err)
} else {
if let auth = authentication {
accessToken = auth.accessToken
}
}
}

if let accTok = accessToken {

let parameters = [
"input": [
"csvInstance": [
0.9,
0.14,
-0.41,
1.61,
-1.67,
1.57,
-0.14,
1.15,
0.26,
-1.52,
-1.57,
3.65
]

]
]

let url = NSURL(string: "https://www.googleapis.com/prediction/v1.6/projects/ExermotePredictionAPI/trainedmodels/getExercise/predict")

let session = URLSession.shared

let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "POST" //set http method as POST

do {
request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

} catch let error {
print(error.localizedDescription)
}

request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("Bearer \(accTok)", forHTTPHeaderField: "Authorization")

let task = session.dataTask(with: request as URLRequest, completionHandler: { data, response, error in

guard error == nil else {
return
}

guard let data = data else {
return
}

do {
if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: AnyObject] {
print(json)
}

} catch let error {
print(error.localizedDescription)
}

})

task.resume()
}

关于json - AlamoFire 请求 Google Cloud Prediction API iOS 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517287/

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