gpt4 book ai didi

ios - 如何使用 Alamofire 在获取请求中发送 JSON 正文

转载 作者:行者123 更新时间:2023-11-28 05:43:12 26 4
gpt4 key购买 nike

自 3 周以来,我一直面临一个问题,我正在使用一个非常特殊的 API,它需要一个 JSON 对象作为 GET 请求中的正文。我认为这是主要问题

感谢 Alamofire 文档和 Stack Overflow 中提供的所有帮助,我尝试使用 ParameterEncoding 自定义编码,但仍然没有成功。

当我使用 Postman 或在我的终端中使用 curl 发出请求时,没有问题,但是当我使用 Alamofire 快速开发时,我收到内部错误 500 或我的响应中没有传递任何内容(当我在我的参数中设置我的参数时带有关键字编码的请求函数:JSONEncoding.default)。

这是 curl 的例子:

curl -X GET https://blih.epitech.eu/user/repositories-H '内容类型:应用程序/json'-d '{"用户": 帐号, "签名": 密码}'

这是我的代码示例:

/// swift 5
let userString = #"{"user":"\#(account)","signature":"\#(signaturePassword)"}"#
let urlString = "https://blih.epitech.eu/repositories"

Alamofire.request(urlString, method: .get, parameters: [:], encoding: JSONStringArrayEncoding.init(string: userString), headers: nil)
.responseJSON { (response) in
debugPrint(response)
}

'JSONStringArrayEncoding' 是我自定义编码的结构:

struct JSONStringArrayEncoding: ParameterEncoding {
private let myString: String

init(string: String) {
self.myString = string
}

func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var urlRequest = try urlRequest.asURLRequest()

let data = Data(myString.utf8)

if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil {
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
}

urlRequest.httpBody = data

return urlRequest
}
}

我希望在请求成功时得到一个 json 数组:

{
"message": "Listing successful",
"repositories": {
"aaaa": {
"uuid": "e3a6bea1-c581-5fde-a3a8",
"url": "https://blih.epitech.eu/repository/aaa"
}
}
}

但是我得到一个内部错误 500。

预先感谢您的帮助。

最佳答案

只需替换 JSON.encoding -> URLEncoding

Alamofire.request(path,method: .get, parameters: params, encoding: URLEncoding.default, headers: nil)

关于ios - 如何使用 Alamofire 在获取请求中发送 JSON 正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55858837/

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