Comments 11
любые предложения по улучшению.

Например вместо

WebRequest myWebRequest = WebRequest.Create(url);
WebResponse myWebResponse;
try
{
    myWebResponse = myWebRequest.GetResponse();
}
catch (WebException e)
{
    myWebResponse = e.Response;
}
Stream receiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(receiveStream, encode);
string response = readStream.ReadToEnd();
readStream.Close();
myWebResponse.Close();
return response;

сделать

return new WebClient().DownloadString(url);

?
Веб клиент был, но я от него отказался в клиенте, потому что он не умеет строку через POST получать (не умеет же?), а это нужно для того чтобы на одноклассники запросы отправлять. Ну и решил тогда уже везде отказаться, чтобы единообразно было. Правда с одноклассниками до конца разобраться не было времени, поэтому клиент ещё не дописан.
Мда. Ну может в чём-то ещё проблема с ним была. Надо повспоминать получше или заменить обратно.
Вспомнил. В случае WebException, а он выкидывается каждый раз когда, например, токен истёк, хотелось бы всё равно получать ответ в виде строки, то есть надо вытаскивать информацию из e.Response, а значит смысл обёртки теряется.
Жаль, конечно, что такая популярная вещь как DotNetOpenAuth, что поддерживает OAuth2. Но в их репозитории на github есть ветка, в которой реализована поддержка OAuth2 (просто еще не включена в официальный релиз).
«Опечатка». Хотел написать «Жаль, конечно, что такая популярная вещь как DotNetOpenAuth не поддерживает OAuth2»
Учитывая сколько там сейчас драфтов и что каждый сервис поддерживает разные драфты — думаю что в официальный релиз она сможет попасть только после выхода final версии спецификации.
Да, действительно жаль, но на самом деле DetNetOpenAuth не помешало бы побольше модульности — сейчас это здоровый комбайн, от которого мне бы пригодилась только часть с OAuth2, а OpenID, тоже отдельно, нужен был для другого проекта. Поэтому маленькие библиотеки тоже нужны.
Долго я с ним мучался, очень «нудная» библиотека — документация в основном по OpenID по OAuth2 примером мало и то какие-то слишком ограниченные, что бы нормально авторизоваться необходимо инициализировать кучу классов. В итоге проще оказалось сделать все ручками.
Only those users with full accounts are able to leave comments. Log in, please.