Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Замена WebClient в .NET Compact Framework

#c_sharp #net


Я использую WebClient для авторизации при помощи куки на веб-сервисе.

class CookieWebClient : WebClient
{
    public CookieContainer CookieContainer { get; private set; }


    public CookieWebClient()
    {
        this.CookieContainer = new CookieContainer();
    }


    public CookieWebClient(CookieContainer cookieContainer)
    {
        this.CookieContainer = cookieContainer;
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address) as HttpWebRequest;
        if (request == null) return base.GetWebRequest(address);            
        request.Timeout = 30000;
        request.CookieContainer = CookieContainer;
        return request;
    }
}


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


Ответы

Ответ 1



Судя по предыдущему вопросу - у вас есть полный контроль над серверным кодом. И сейчас вы занимаетесь изобретением велосипедов. Незачем вам там использовать Web Api. RESTfull-сервисы хороши только когда у вас есть некий готовый функционал, и вы хотите по-быстрому сделать его доступным для некого JavaScript-кода выполняющегося в веб-браузере. Для бизнес-приложений он не подходит, и применяться там не будет никогда. Такова его специфика. Для CF всегда лучше всегда использовать WCF-сервисы(SOAP), вместо Web Api. Там авторизация из коробки, все вызовы строго типизированы, внятная обработка исключений. Ну и просто приятней когда можно нажать в студии правой кнопкой на проекте, выбрать "Add Web Service", вбить url конечной точки, а всё остальное студия сделает за вас. Вопрос об отсутствующем WebClient отпадет сам по себе.

Комментариев нет:

Отправить комментарий