gpt4 book ai didi

ios - 带 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数

转载 作者:行者123 更新时间:2023-11-29 00:31:07 27 4
gpt4 key购买 nike

我正在尝试发送如下的发布请求,我的路由器如下

enum ProfieRouter: URLRequestConvertible {

case loginUser(parameters: Parameters)
case resetPassword(parametrs: Parameters)

var method: HTTPMethod {

switch self {

case .loginUser:
return .post

case .resetPassword:
return .post
}
}

var path: String {

switch self {
case .loginUser:
return "app/api.php?request=login"

case .resetPassword:
return "app/api.php?request=forgettenPassword"
}
}

func asURLRequest() throws -> URLRequest {
let BASEURL = "https://www.example.com/"
let url = try BASEURL.asURL()
var urlRequest = URLRequest(url: url.appendingPathComponent(path))
urlRequest.httpMethod = method.rawValue


switch self {

case .loginUser(let parameters):
urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)

case .resetPassword(let parameters):
urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)
}
return urlRequest
}

这就是我从 ViewController 中调用它的方式,

@IBAction func signInButtonClicked(_ sender: Any) {

let parameters: Parameters = [
"email": "xxxxxx",
"password": "xxxxxx"
]

Alamofire.request(ProfieRouter.loginUser(parameters: parameters)).responseJSON{ response in


switch response.result {
case .success:
print(response)

break
case .failure(let error):

print(error)
}

}

}

但是我收到以下错误,

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

请注意,当我使用 POSTMAN 和 Advanced REst Client 检查时,我的 API 响应是有效的。我已经尝试了几个有关以下错误的问题,但没有一个适用于我的情况。

请有人指出我在这里犯的错误。谢谢。

最佳答案

试试这个..

像这样修改您的网络服务调用代码:

// Add default headers if needed.(As per your web-service requirement)
let headers: HTTPHeaders = [
"Accept": "text/html",
"Content-Type" : "application/x-www-form-urlencoded"
]

Alamofire.request("Your URL", method: .post, parameters: parameters, encoding: URLEncoding.httpBody, headers: headers).validate().responseJSON { (response) in

debugPrint(response)
}

希望对您有所帮助。

关于ios - 带 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41802493/

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