で作業していない、私のルータスウィフト3とAlamofire 4.3、POSTリクエストは、私は次のようにPOSTリクエストを送信しようとしていますURLパラメータ
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.}))
私のAPIの応答は、POSTMANとAdvanced REst Clientでチェックしたときに有効です。と私はいくつかの質問を次のエラーについては試してみましたが、私の場合はそれらの仕事はありません。
私がここで行った間違いを指摘できますか? ありがとうございます。
POSTMANを使用する場合は、** HTTPリクエストヘッダー**の値を使用しますか? – Wolverine
はい私はContent-Typeをapplication/x-www-form-urlencodedに設定しましたが、結果は同じです –
**リクエスト(url:sample)**を使用しようとしています。 ** _ url :, メソッドを含むAlamofire.request()を使用する代わりに、 パラメータ エンコーディング:, ヘッダー:) **パラメータ。 – Wolverine