Вывод веб-службы не дает требуемого json в быстром использовании alamofire

aaaaaaaaaaaaaaaaaaaaaaaaa спросил: 28 апреля 2018 в 09:20 в: ios

1)

Я новичок в использовании alamofire.Here моя попытка использовать alamofire для проверки веб-службы, где я ошибаюсь. Я сделал веб-сервис входа в loginviewcontroller.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!)
            }        }

print(response)

FAILURE

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailu>reReason.jsonSerializationFailed(ErrorDomain=NSCocoaErrorDomain Код = 3840 "Недопустимое значение вокруг символа2". UserInfo = {NSDebugDescription = Недопустимое значение вокруг символа 2.}))

print (response.result)

FAILURE

error with response status: 404

2)

Второй signUpviewcontroller.swift связан с контроллером представления signUp. В signUpViewController.swift код для singUp

FAILURE

responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailu > reReason. jsonSerializationFailed (Ошибка

Домен = NSCocoaErrorDomain Code = 3840"I nvalid value вокруг character2."UserInfo = {NSDebugDescription = Недопустимое значение вокруг символа 2.}))

print (response.result)

ошибка с ответом status: 404

Как я могу получить действительный ответ json?

вы можете загрузить проект по этим ссылкам https://drive.google.com/file/ d / 1Q__ydaQ7o0fKcFHdq6ymkxh52IEf7hMK / view? usp = sharingHere на почтальоне api показывает требуемый json out put.

Sigin Up:

image1

image2

Введите:

image3

image4

укажите параметры в теле. Вы можете добавить json-параметры, преобразующие запрос json url, чтобы опубликовать. В нижней части вкладки выберите тело, поместите здесь параметры, выбрав raw.


2 ответа

Есть решение
Ankit Jayaswal ответил: 28 апреля 2018 в 10:50

Посмотрев на скриншоты, которые вы поделили, я обнаружил, что в вызове API есть 2 проблемы.

1) Измените кодировку с URLEncoding на JSONEncoding

2) Обновите свой URL, избегая двойного // в запросе


Выполните следующие изменения:

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

To:

    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"
Βασίλης Δ. ответил: 28 апреля 2018 в 09:30

попробуйте эту ссылку "http://192.169.201.32:9000/users/authenticate"

Я думаю, что у вас есть дополнительный /

404 Not Found означает, что проблема связана с ошибкой страницы linkIt.