【问题标题】:Pass parameters to Get request on swiftUI将参数传递给 swiftUI 上的 Get 请求
【发布时间】:2021-11-02 19:39:27
【问题描述】:

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

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

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

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

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

非常感谢您的帮助!

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

【问题讨论】:

  • GET 请求中,参数通常编码在url 中——例如https://example.com/?myParam=myValue。看来您要做的是POST 请求。
  • 当前请求不支持POST请求,需要后端改一下吗?
  • 也许吧。或者也许 URL 编码你的参数

标签: c# .net swiftui httprequest webapi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多