将参数传递给 swiftUI 上的 Get 请求

Pass parameters to Get request on swiftUI

我在将参数传递给 get 请求时遇到问题。此请求旨在 return 用户输入一些搜索参数(例如日期、州、邮政编码 and/or 仓库编号后的仓库列表,这是唯一的必填字段。因此,当按下搜索按钮时,将执行查询,但我收到此错误:

2021-04-19 15:49:00 +0000
2021-11-02 13:06:44.670511-0600 WAREHOUSE_IOS-Master[3142:186324] GET method must not have a body
2021-11-02 13:06:44.670799-0600 WAREHOUSE_iOS-Master[3142:186324] Task <C7839029-C527-490E-8747-137012285F14>.<3> finished with error [-1103] Error Domain=NSURLErrorDomain Code=-1103 "resource exceeds maximum size" UserInfo={NSLocalizedDescription=resource exceeds maximum size, 
error: invalidResponse

好的,我正在做的是将正文传递给包含搜索参数的 get 请求:

struct WarehouseBody : Codable {
    
    let dateRegistration : String?
    let state : String?
    let zip : String?
    let warehouseNumber : String
}

我期待这样的回复:

struct WareHouseResponse: Codable {
    let status: String?
    let code: Int?
    let responseCode, message: String?
    let error: Bool?
    let errorMessage: String?
    let result: Result?

    enum CodingKeys: String, CodingKey {
        case status = "Status"
        case code = "Code"
        case responseCode = "ResponseCode"
        case message = "Message"
        case error = "Error"
        case errorMessage = "ErrorMessage"
        case result = "Result"
    }
}

但根据我在其他 post 上阅读的内容,这不是使用 get 请求的正确方法,但我真的需要做一些测试。有没有一种方法可以在不需要更改后端的情况下实现这一目标?顺便提一下,我也是后端的开发人员(使用 .net 框架和 dapper 的 c#),所以如果最简单的方法是通过更改它来实现这一点,我也可以这样做。非常感谢任何想法。 在后端,我正在考虑实现一个 post 请求,将搜索参数发送到服务器,然后是一个获取请求,提取请求的信息,但我不知道这是否是正确的方法。但这目前不可行,因为 Web API 已经发布,我现在无法重新发布更改,并且非常急需测试响应,所以我想知道这一切是否可以首先从前端完成。非常感谢大家的帮助!

非常感谢您的帮助!

编辑:另外我忘了提到 api 之前已经在 POSTMAN 上测试过并且运行良好。

因为 iOS 13. 您不能将参数传递给 GET 请求。没有简单的方法解决这个问题。您需要在后端将请求从 GET 更改为 POST。在我的例子中,这是一项简单的任务,因为我可以访问 API 源——但是,如果你不这样做,只需要求后端团队更改它,并像在任何其他 POST 请求。那应该可以。