gpt4 book ai didi

IOS - Swift 4.0 - 使用 Alamofire 的基本访问身份验证 -

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:55 26 4
gpt4 key购买 nike

我正在 Swift 4 中开发一个应用程序,当我需要进行 POST 调用时,例如带有 header 和带有参数的正文的“基本访问身份验证”,它对我不起作用。

基本上我想模拟这个调用,返回 200,但它给了我:

"responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.})) "

API 网址是:

https://gist.github.com/juaniiton1/3a3e422ed99de22f3f3686bb3b7788d7

部分是“在授权用户组合中存储新交易”。

在这里,我在 Alamofire (4.7.3) 的帮助下传递了模拟请求“在 authoved 用户投资组合中存储新交易”的代码。

我遵循的步骤如下:

  • 我所做的是,对您输入的“用户名”和“密码”数据进行编码在 base64 中给我。

  • 然后我将类型 Stirng 的日期格式化为类型 Date(类型 ISO)。

  • 在我为数据创建字典之后

  • 最后我创建了请求,将上述所有内容放在一起。

  • 此外,在 Xcode 中我有 TransportSecurity 来制作请求“https”

这里我留下代码:

导入基金会导入 UIKit导入 Alamofire

类 View Controller :UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

//URL
let url = URL(string: "https://test.cryptojet.io/coins/portfolio")!

// credentials encoded in base64
let username = "richard@rich.com"
let password = "secret"
let loginData = String(format: "%@:%@", username, password).data(using: String.Encoding.utf8)!
let base64LoginData = loginData.base64EncodedString()
let headers = ["Authorization" : "Basic \(base64LoginData)",
"Content-Type": "application/json"]

//Prepare date - Data UTC to ISO
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
let dataSting = "2016-06-05T16:56:57.019+01:00"
let dateISO = dateFormatter.date(from: dataSting)

//Prepare paramsBody -> tot Data
let paramsBody: [String: Any] = ["coin_id": 2,
"amount": -2.2183,
"price_usd": 675.982,
"traded_at": dateISO!]

//Request
Alamofire.request(url, method: .post,parameters: paramsBody, encoding: URLEncoding.default, headers: headers).responseJSON { response in
switch response.result {
case .success:
guard let json = response.result.value as? [String: Any],
let data = json["trade"] as? [String: Any] else {
return
}
print(data)
case .failure(let error):
print(error)
}
}

}

你能告诉我这个与服务器的 POST 身份验证调用有什么问题吗?

最佳答案

我试图向您的网址发出请求,但您的请求的响应似乎不是 JSON:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="robots" content="noindex,nofollow" />
<style> body { background-color: #F9F9F9; color: #222; font: 14px/1.4 Helvetica, Arial, sans-serif; margin: 0; padding-bottom: 45px; }

a { cursor: pointer; text-decoration: none; }
a:hover { text-decoration: underline; }
...

关于IOS - Swift 4.0 - 使用 Alamofire 的基本访问身份验证 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52000469/

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