Авторизация на сайте - C# (195575)

Узнай цену своей работы

Формулировка задачи:

В devel studio использовал такой код для авторизации и отправки вопроса на ask.fm
Листинг программы
  1. define('SETUSERAGENT', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)');
  2. function getToken() {
  3. $a = curl_init("http://ask.fm/vitafon007");
  4. curl_setopt($a, CURLOPT_USERAGENT, SETUSERAGENT);
  5. curl_setopt($a, CURLOPT_COOKIEJAR, 'cookie.txt');
  6. curl_setopt($a, CURLOPT_COOKIEFILE, 'cookie.txt');
  7. curl_setopt($a, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($a, CURLOPT_CONNECTTIMEOUT, 10);
  9. curl_setopt($a, CURLOPT_MAXREDIRS, 10);
  10. curl_setopt($a, CURLOPT_REFERER, 'http://ask.fm/');
  11. curl_setopt($a, CURLOPT_FOLLOWLOCATION, 0);
  12. curl_setopt($a, CURLOPT_HEADER, FALSE);
  13. curl_setopt($a, CURLOPT_SSL_VERIFYPEER, 0);
  14. curl_setopt($a, CURLOPT_SSL_VERIFYHOST, 0);
  15. $wynik = curl_exec($a);
  16. curl_close($a);
  17. preg_match_all('#<input name="authenticity_token" type="hidden" value="(.*)" />#', $wynik, $token);
  18. return $token[1][0];
  19. }
  20.  
  21. function login($login, $password) {
  22. $token = getToken();
  23. $curlchanel = curl_init("http://ask.fm/session");
  24. curl_setopt($curlchanel, CURLOPT_USERAGENT, SETUSERAGENT);
  25. curl_setopt($curlchanel, CURLOPT_COOKIEJAR, 'cookie.txt');
  26. curl_setopt($curlchanel, CURLOPT_COOKIEFILE, 'cookie.txt');
  27. curl_setopt($curlchanel, CURLOPT_HEADER, 0);
  28. curl_setopt($curlchanel, CURLOPT_TIMEOUT, 6);
  29. curl_setopt($curlchanel, CURLOPT_SSL_VERIFYPEER, 0);
  30. curl_setopt($curlchanel, CURLOPT_SSL_VERIFYHOST, 0);
  31. curl_setopt($curlchanel, CURLOPT_RETURNTRANSFER, 1);
  32. curl_setopt($curlchanel, CURLOPT_POSTFIELDS, trim("authenticity_token=$token&login=$login&password=$password&follow=&like=&back=&authenticity_token=$token"));
  33. $wynik = curl_exec($curlchanel);
  34. curl_close($curlchanel);
  35. }
  36. function ask($question, $user) {
  37. $question = urlencode(iconv ("CP1251","UTF-8",$question))
  38. $token = getToken();
  39. $curlchanel = curl_init("http://ask.fm/$user/questions/create");
  40. curl_setopt($curlchanel, CURLOPT_USERAGENT, SETUSERAGENT);
  41. curl_setopt($curlchanel, CURLOPT_COOKIEJAR, 'cookie.txt');
  42. curl_setopt($curlchanel, CURLOPT_COOKIEFILE, 'cookie.txt');
  43. curl_setopt($curlchanel, CURLOPT_HEADER, 0);
  44. curl_setopt($curlchanel, CURLOPT_TIMEOUT, 6);
  45. curl_setopt($curlchanel, CURLOPT_RETURNTRANSFER, 1);
  46. curl_setopt($curlchanel, CURLOPT_SSL_VERIFYPEER, 0);
  47. curl_setopt($curlchanel, CURLOPT_SSL_VERIFYHOST, 0);
  48. curl_setopt($curlchanel, CURLOPT_POSTFIELDS, trim("authenticity_token=$token&question%5Bquestion_text%5D=$question%3F&question%5Bforce_anonymous%5D=&question%5Bforce_anonymous%5D=force_anonymous&authenticity_token=$token"));
  49. $wynik = curl_exec($curlchanel);
  50. curl_close($curlchanel);
  51. }
Пришлось уйти из devel studio, там не получилось сделать выполнение в "реальном времени" в C# есть команда хорошая
Листинг программы
  1. Application.DoEvents();
альтернативы на devel studio не нашел( что может перевести код из php в c# буду оч благодарен

Решение задачи: «Авторизация на сайте»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.IO;
  8. namespace parser
  9. {
  10.     class Program
  11.     {
  12.         static string getResponse(string uri)
  13.         {
  14.             StringBuilder sb = new StringBuilder();
  15.             byte[] buf = new byte[8192];
  16.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
  17.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  18.             Stream resStream = response.GetResponseStream();
  19.             int count = 0;
  20.             do
  21.             {
  22.                 count = resStream.Read(buf, 0, buf.Length);
  23.                 if (count != 0)
  24.                 {
  25.                     sb.Append(Encoding.Default.GetString(buf, 0, count));
  26.                 }
  27.             }
  28.             while (count > 0);
  29.             return sb.ToString();
  30.         }
  31.  
  32.         static private void addd(string line)
  33.         {
  34.             System.IO.StreamWriter writer = new System.IO.StreamWriter("pars.txt", true);
  35.             writer.WriteLine(line);
  36.             writer.Close();
  37.         }
  38.  
  39.         static void Main(string[] args)
  40.         {
  41.             string porovnat = " ";
  42.             int shet=0;
  43.             string zapis;
  44.             int index=1;
  45.             try
  46.                 {
  47.             for (int i2 = 1; i2 < 100000; i2++)
  48.             {
  49.                 string t = getResponse("http://market.yandex.ua/guru.xml?hid=91491&CMD=-RR=9,0,0,0-VIS=270-CAT_ID=160043-BPOS=" + i2 + "0-EXC=1-PG=10&greed_mode=false");
  50.                 string tm = t;
  51.                 if (t == porovnat || index <= 0)
  52.                     break;
  53.                 for (int i = 0; i < 10; i++)
  54.                 {
  55.                     index = t.IndexOf("<a id=\"item-href");
  56.  
  57.                     if (index <= 0)
  58.                     {
  59.                         shet++;
  60.                         Console.WriteLine("error index" + shet.ToString());
  61.                         break;
  62.                     }
  63.  
  64.                         t = t.Substring(index, t.Length - index);
  65.                         index = t.IndexOf("</a>");
  66.                         zapis = t.Substring(0, index + 4);
  67.                         addd(zapis);
  68.                         t = t.Substring(index, t.Length - index);
  69.                         porovnat = tm;
  70.                 }
  71.             }
  72.                 }
  73.                 catch(Exception e)
  74.                 {
  75.                     Console.WriteLine(e);
  76.                     Console.ReadLine();
  77.                 }
  78.             System.Threading.Thread.Sleep(100);
  79.  
  80.         }
  81.     }
  82. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут