【发布时间】: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