извлечение данных из остальных API в формах xamarin - PullRequest
0 голосов
/ 28 февраля 2019

Я создал веб-сервис с wcf, который получает два строковых параметра и дает строковое значение, этот веб-сервис размещен в IIS и работает правильно, это часть моего кода, и он дает формат json:

[OperationContract]
    [WebInvoke(UriTemplate = "AuthUserPass", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    string AuthUserPass(string UserName);

Теперь я хочу получить данные из этого сервиса в формах xamarin, но я не знаю, как это сделать: мой код для этого:

    public async Task<int> AuthUserPassAsync(string username,string password)
    {
        int sessionResponseJson = 1000;
        var uri = new Uri(string.Format(Constants.AuthUrl, string.Empty));

        Users userJson = new Users();
        userJson.UserName = username;
        userJson.Password = password;

        var json = JsonConvert.SerializeObject(userJson);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        var response = await client.PostAsync("login", content);

        var result = response.Content.ReadAsStringAsync().Result;
        if (result != "")
        {
            sessionResponseJson = JsonConvert.DeserializeObject<int>(result);
        }
        return sessionResponseJson;

}

1 Ответ

0 голосов
/ 01 марта 2019

Из вашего метода веб-сервиса, который я вижу, требуется только один строковый параметр «Имя пользователя»

    string AuthUserPass(string UserName);

А при вызове метода веб-сервиса вы передаете объект с двумя полями «Имя пользователя»'и' Пароль '

    Users userJson = new Users();
    userJson.UserName = username;
    userJson.Password = password;

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

...