Ich versuche, eine Post-Anforderung zu senden, wie folgt: Mein Router alsAlamofire 4.3 mit Swift 3, POST-Anforderung arbeitet nicht mit URL-Parameter
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
}
folgt}
Dies ist, wie ich es nennen von 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)
}
}
}
Aber ich habe folgende Fehler wie folgt
responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))
Bitte beachten Sie, dass meine API-Antwort gültig ist, wenn ich mit POSTMAN und Advanced REst Client überprüft habe. Und ich habe mehrere Frage bezüglich des folgenden Fehlers versucht, aber von ihnen funktioniert in meinem Fall nicht.
Bitte kann jemand auf den Fehler hinweisen, den ich hier gemacht habe. Danke.
Wenn Sie POSTMAN verwenden, verwenden Sie irgendwelche ** HTTP-Request-Header ** -Werte? – Wolverine
ja ich setze Content-Type als application/x-www-form-urlencoded, trotzdem ist das Ergebnis gleich –
Sie versuchen, **. Request (url: sample) ** zu verwenden. Verwenden Sie stattdessen Alamofire.request(), das ** _ url :, Methode enthält: Parameter Codierung :, Header :) ** Parameter. – Wolverine