Я не получаю ответа от сервера. Как я могу это исправить? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть сеть на простом экране входа.Я использовал Alamofire и Decodable.Я не получаю никакого ответа от сервера.Почему это может быть?(Я добавил код ATS в info.plist)

import UIKit
import Alamofire

struct ResponseLogin: Decodable {
    let id: Int
    let name: String
    let surname: String
    let email: String
    let password: String
}

class ViewController: UIViewController {


@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

@IBAction func loginButtonPressed(_ sender: Any) {
    print("Button Pressed")

    guard let email = emailTextField.text else {return}
    let url = "URL"
    let body = ["email": email]

    Alamofire.request(url, method: .get, parameters: body, encoding: JSONEncoding.default).responseJSON { (response) in

        if response.result.error == nil {
            print("No Response Error")
            guard let data = response.data else { return }
            print(data)
            do {
                let responseLogin = try JSONDecoder().decode(ResponseLogin.self, from: data)
                print(responseLogin)

            } catch let jsonErr {
                print("Error serializing json:", jsonErr)
            }

        } else {
            debugPrint(response.result.error)
        }
    }

}
}

Веб-служба:

[WebMethod] [ScriptMethod (ResponseFormat = ResponseFormat.Json)] public void getUserDetail (string email) {userDetailuser = (из c в DBcontext.users, где c.Email == электронная почта, выберите новый userDetail () {id = c.id, имя = c.Name, фамилия = c.Фамилия, электронная почта = c.Email, пароль = c.Пароль}). SingleOrDefault ();

    string jsonstr = new JavaScriptSerializer().Serialize(user);
    Context.Response.ContentEncoding = System.Text.Encoding.UTF8;
    Context.Response.ContentType = "application/json";
    Context.Response.Write(jsonstr);
    Context.Response.End();
}

1 Ответ

0 голосов
/ 24 ноября 2018

В вызовах API может быть много проблем.

Во-первых, вы можете проверить, работает ваш API или нет, проверьте Почтальон.Если API работает с почтальоном, вы должны проверить свой код.

И вы уверены, что ваш сервер работает?

...