WebService 的输出没有使用 Alamofire 在 Swift 中提供所需的 JSON



1(

我是使用alamofire的新手。这是我尝试使用 alamofire 使 Web 服务检查我错在哪里。我已经在登录视图控制器中创建了一个登录网络服务.swift如下所示

let url="http://192.169.201.32:9000//users/authenticate"
@IBAction func DoLogin(_ sender: AnyObject) {
Alamofire.request(url, method: .post, parameters:["username":"andrews","password":"admin2"], encoding: URLEncoding.default)
.responseJSON { response in
print("abcsign in")
print(response)
print("abcsign in3")
print(response.result)
//to get status code
if let status = response.response?.statusCode {
switch(status){
case 201:
print("example success")
default:
print("error with response status: (status)")
}
}
//to get JSON return value
if let result = response.result.value {
let JSON = result as! NSDictionary
print("abcsign in 2")
print(JSON)
}
}
if(login_button.titleLabel?.text == "Logout")
{
let preferences = UserDefaults.standard
preferences.removeObject(forKey: "session")
LoginToDo()
}
else{
login_now(username:username_input.text!, password: password_input.text!)
}
}

打印(响应(

失败

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailu>reReason.jsonSerializationFailed(Error 域=NSCocoa错误域代码=3840"字符周围的值无效 2." 用户信息={NSDebugDescription=字符 2 两边的值无效。}((

打印(响应结果(

失败

error with response status: 404

2(

第二个 signUpviewController .swift 与 signUp 视图控制器 连接。在 signUpViewController 中.swift singUp Web Service 的代码如下所示

let url="http://192.169.201.32:9000//patient/signUp"
@IBAction func signUpButtonWasPressed(_ sender: Any) {
Alamofire.request(url, method: .post, parameters:["dob":DateOfBirthTextFeild.text ,
"email":emailIdTextField.text ,
"firstName":FirstNameTextField.text ,
"gender":genderTextField.text ,
"lastName":LastNameTextField.text ,
"middleName":MiddleNameTextField.text ,
"password":passwordTextField.text ,    //password must be 8 char long
"ssn":ssnTextField.text], encoding: URLEncoding.default)
.responseJSON { response in
print("abcsig up ")
print(response)
print("abcsign up 3")
print(response.result)
//to get status code
if let status = response.response?.statusCode {
switch(status){
case 201:
print("example success")
default:
print("error with response status: (status)")
}
}
//to get JSON return value
if let result = response.result.value {
let JSON = result as! NSDictionary
print("abcsign up in 2")
print(JSON)
}
}
}    

打印(响应(

失败

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailu>reReason.jsonSerializationFailed(Error

域=NSCocoa错误域代码=3840"字符周围的值无效 2." 用户信息={NSDebugDescription=字符 2 两边的值无效。}((

打印(响应结果(

响应状态错误:404

如何获取有效的 JSON 响应?

您可以从此链接下载该项目 https://drive.google.com/file/d/1Q__ydaQ7o0fKcFHdq6ymkxh52IEf7hMK/view?usp=sharing 在邮递员上,api显示了所需的json输出。

西金向上:

图片1

图像2

登录:

图片3

图片4

在正文中提供参数。您可以添加将 json url 请求转换为发布 的 json 参数。在下面的选项卡中,通过选择原始选择正文将参数放在此处。

查看您分享的屏幕截图,我发现 API 调用中存在 2 个问题。

1( 将编码从URLEncoding更改为JSONEncoding

2( 通过避免请求中的双重//来更新您的网址


执行以下更改:

Alamofire.request(url,
method: .post,
parameters:["username":"andrews","password":"admin2"],
encoding: URLEncoding.default)

自:

Alamofire.request(url,
method: .post,
parameters:["username":"andrews","password":"admin2"],
encoding: JSONEncoding.default) 

let parameters = ["dob":"16-08-2017",
"email":"ali45324@heurixtics.com",
"firstName":"abdul",
"gender":"male",
"lastName":"hasmi",
"middleName":"rauf",
"password":"12345678",
"ssn":"1235"]
Alamofire.request(url,
method: .post,
parameters:parameters,
encoding: JSONEncoding.default)

您还需要更正您的请求 URL:

let url = "http://192.169.201.32:9000//users/authenticate"
let url = "http://192.169.201.32:9000//patient/signUp"

自:

let url = "http://192.169.201.32:9000/users/authenticate"
let url = "http://192.169.201.32:9000/patient/signUp"

试试这个链接"http://192.169.201.32:9000/users/authenticate">

我想你有一个额外的/

404 未找到表示问题出在链接上 这是一个找不到页面的错误

相关内容

  • 没有找到相关文章

最新更新