将参数传递给 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
请求。那应该可以。
我在将参数传递给 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
请求。那应该可以。