Indy Cookies Cookie Manager Poblem

0

Witam!
Prosiłbym o pomoc.

Z wiresharka wiem, że:

  1. Wysyłam zapytanie logowania.
  2. Otrzymuję odpowiedź Moved Temporarily, z polem SetCookie
  3. Realizują się przekierowania

Do IdHTTP mam podpiętego Cookie Managera. Gdy jednak próbuję odwołać się do zawartości CookieCollection wyszukując dane ciasteczko lub chcąc wyświetlić wszystkie okazuje się być pusta. Strumień Output zawiera odpowiedź z ostatniego przekierowania(ResponseText=HTTP/1.0 200 OK, a Raw Headers=

Cache-Control: private, pre-check=0, post-check=0, max-age=0
Expires: 0
Pragma: no-cache
Content-Type: text/html
Date: Wed, 19 Oct 2011 20:49:09 GMT
Connection: close

). Skąd zdobyć odpowiedź i cookies z pierwszej odpowiedzi serwera? Jakoś inaczej odwołać się do Cookie Managera?

Możliwe, że błędnie się do niego odnoszę. Jednak większość jego właściwości i funkcji jest w dziwnych typach, których w żaden sposób nie mogę odczytać. Jak się do nich "dobrać"?

Z góry dzięki

1

Kod dla Indy 10 (w Indy 9 mogą być drobne różnice ale jeżeli już chcesz w Indy a masz 9 to polecam zmianę na 10):

const
  UA = 'Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1';
  URL = 'http://google.pl';
var
  i: Integer;
begin
  IdHTTP1.Request.UserAgent:= UA;
  IdHTTP1.HandleRedirects:= True;
  IdHTTP1.CookieManager:= IdCookieManager1;
  IdHTTP1.Get(URL);
  Memo1.Lines.Add('METODA 1 - Cookie Collection:');
  for i:= 0 to IdHTTP1.CookieManager.CookieCollection.Count - 1 do
    Memo1.Lines.Add(IdHTTP1.CookieManager.CookieCollection.Items[i].CookieText);
  Memo1.Lines.Add('METODA 2 - Headers:');
  for i:= 0 to IdHTTP1.Response.RawHeaders.Count - 1 do
    Memo1.Lines.Add(IdHTTP1.Response.RawHeaders.Strings[i]); //tu musisz poszukac Set-Cookie
end;
0

Na stronie indy jest info o crashu serwera i nie da się pobrać indy 10. Jeśli macie, to dajcie proszę linka do instalki innej niż Indy 10.0.52(Rzekomo nierozwijana i zabugowana wersja)

Edit. Lub ewentualnie podajcie proszę, gdzie mam te cookie dodać. Do Strumienia wysyłanego w zapytaniu(POST-em)? W jakiej formie(nazwa_cookie=wartosc_cookie;), czy bez średnika? Z góry dzięki za pomoc

1

Indy 10 jest na: http://web.archive.org/web/20070122043958/www.atozed.com/indy/Plus/Files.en.aspx - przed pobieraniem po kliknięciu na odnośnik długo nic się nie dzieje, ale po kilkunastu, a czasem większej ilości sekund plik się pobierze.

1

Olesio to jest właśnie to 10.0.52

Tu jest jakaś inna wersja jeszcze jej nie instalowałem itd... chyba 10.46.90 (tak przypuszczam po nazwie archiwum) w każdym razie daty modyfikacji plików pozwalają przypuszczać że to najnowsza wersja:
http://indy.fulgan.com/ZIP/

Masz jeszcze instrukcje instalacji abyś wiedział w jakiej kolejności kompilować / instalować:

Delphi / BCB Installation

2) Open and compile .dpk files in the following order:

         1. IndySystemX0.dpk (in Lib\System)
         2. IndyCoreX0.dpk (in Lib\Core)
         3. IndyProtocolsX0.dpk (in Lib\Protocols)
         4. IndySuperCoreX0.dpk (in Lib\SuperCore)
            If you are not using SuperCore, then you do not need to compile this package.

3) Now open these .dpk files and click install in the following order:

         1. dclIndyCoreX0.dpk (in Lib\Core)
         2. dclIndyProtocolsX0.dpk (in Lib\Protocols)
         3. dclSuperCoreX0.dpk (in Lib\SuperCore)
            Only install this if you have compiled SuperCore.
0

Niestety, po testach okazało się, że pierwsze cookie jest prawidłowo ustawiane w cookie managerze, ale te otrzymywane po przekierowaniu już nie bardzo. Jak mogę "wskoczyć" pomiędzy przekierowania?(W odpowiedzi na pierwsze zapytanie wysyłana jest odpowiedź z przekierowaniem i set-cookie, które trzeba wysłać w odpowiedzi do tego przekierowanie, a ja ustawiam ręcznie cookie przed pierwszym wysłaniem(Czeka mnie reinstalacja delphi i indy chyba niestety, bo to ciągle nie działa).

Da się "wskoczyć" pomiędzy przekierowania zapisane jednym poleceniem IdHttp.Post, czy czeka mnie reinstalacja delphi i indy?

1

Zdarzenie OnRedirect wykonuje się przed wykonaniem przekierowania tam można pokombinować. Reinstalacja Delphi i Indy raczej nic nie da i wątpię aby to była wina Indy czy nawet Delphi) być może coś jednak zrobisz źle ale trudno coś powiedzieć nie znając kodu co jak piszesz nawt nie znając adresu na ktorą stronę chcesz się dostać.

0

Robię autorespondera do darkwarez.pl

Kod mi ciężko przytoczyć bo teraz ma w sumie ok. 2k linijek, a żebym wydobył tylko to co się odnosi do komunikacji http to bym musiał trochę czasu poświęcić. Zobaczę, czy uda mi się przez to zdarzenie, a jak nie to wezmę się do wydobycia kodu

EDIT. Mam ten kod:

Najpierw się loguję, jednak wysyłając kolejne zapytania z wiresharka wiem, że nie wysyłam otrzymanych cookie, przez co odpowiedzi nie są przyjmowane(Choc w wiresharku w odpowiedzi serwera nie ma o tym informacji, wiec sie tylko domyslam, ale nie bardzo widze, co jeszcze mogloby byc nie tak(Mam vip-a wiec recaptchy nie powinno byc))
Co ważniejsze fragmenty:

Forum : IdHttp
Logowania : Memo

procedure TMainForm.Button1Click(Sender: TObject);
const
  UA = 'Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1';
var
  Input, OutPut : TStringStream;
  ErrCode : ShortString;
  PliczekDrkwz : TextFile;
 Cookies : String;
 nCookies : Integer;
  PliczekCookie : TextFile;
  PliczekData : TextFile;
  Liczba : Integer;

begin
  Logowania.Lines.Clear;
  Logowania.Lines.Add('Loguję do Darkwarez.pl...');

  { Z Firebuga: usrname=Nick&passwrd=Passy&redirect=&login=Zaloguj }

  { stworzenie strumieni tekstowych }
  Input := TStringStream.Create('');
  Output := TStringStream.Create('');
  try
    Button1.Enabled := False; // zablokowanie przycisku
    Forum.AllowCookies := TRUE;

    Input.WriteString(Format('usrname=%s&passwrd=%s&autologin=on&redirect=&login=Zaloguj', [LoginDrkwz.Text, PassyDrkwz.Text]));

   Forum.Request.UserAgent:= UA;
   Forum.HandleRedirects:= True;
   Forum.CookieManager:= IdCookieManager1;


    Forum.Get('http://darkwarez.pl/forum/login.php');
    Memo1.Lines.Add('METODA 1 - Cookie Collection:');
    for i := 0 to Forum.CookieManager.CookieCollection.Count - 1 do
    Memo1.Lines.Add(Forum.CookieManager.CookieCollection.Items[i].CookieText);
    Memo1.Lines.Add('METODA 2 - Headers:');
    Cookies := '';
    Memo1.Clear;
    for i:= 0 to Forum.Response.RawHeaders.Count - 1 do
    begin
    Memo1.Lines.Add(Forum.Response.RawHeaders.Strings[i]);
    end;

{

Nagłówki odpowiedzi

HTTP/1.0 302 Moved Temporarily
Set-Cookie: phpbb2dww_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A7%3A%221460688%22%3B%7D; expires=Fri, 26-Oct-2012 13:36:25 GMT; path=/; domain=.darkwarez.pl
phpbb2dww_sid=880324dcbdb1158f83bdf5f17af29f62; path=/; domain=.darkwarez.pl
Location: http://darkwarez.pl/forum/index.php
Content-Type: text/html
Content-Length: 0
Date: Thu, 27 Oct 2011 13:36:25 GMT
Connection: keep-alive


Nagłówki zapytania

POST /forum/login.php HTTP/1.1
Host: darkwarez.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://darkwarez.pl/forum/login.php

}


    Try
      Forum.Request.Referer := 'http://darkwarez.pl/forum/login.php';
      Forum.Post('http://darkwarez.pl/forum/login.php', Input, Output); // wyslanie danych ze strumienia do skryptu
      Forum.Request.Referer := 'http://darkwarez.pl/forum/';
    except
      Logowania.Lines.Add('Wystąpił błąd podczas logowania do Darkwarez');
      ShowMessage('Błąd logowania!');
    end;

    Memo1.Clear;
    Memo1.Lines.Add('Po logowaniu: METODA 1 - Cookie Collection:');
    for i := 0 to Forum.CookieManager.CookieCollection.Count - 1 do
    Memo1.Lines.Add(Forum.CookieManager.CookieCollection.Items[i].CookieText);
    Memo1.Lines.Add('METODA 2 - Headers:');
    Cookies := '';
    for i:= 0 to Forum.Response.RawHeaders.Count - 1 do
    begin
    Memo1.Lines.Add(Forum.Response.RawHeaders.Strings[i]); 
    end;


    Cookies := Memo1.Text;
    If Pos('Set-Cookie:', Cookies) <> 0 then
    begin
    	While Pos('Set-Cookie:', Cookies) <> 1 do
      	 begin
      	 Delete(Cookies, 1, 1);
      	 end;


  	While Pos(':', Cookies) <> 1 do
    	 begin
    	 Delete(Cookies, 1, 1);
    	 end;

    	Cookies := 'Cookies'+Cookies;

   	SetCookie1 := '';

   	While Pos('domain=.darkwarez.pl', Cookies)<> 1 do
    	 begin
    	 SetCookie1 := SetCookie1+Copy(Cookies, 1, 1);
    	 Delete(Cookies, 1, 1);
    	 end;

   	SetCookie1 := SetCookie1+'domain=.darkwarez.pl';

   	While Pos('Set-Cookie:', Cookies) <> 1 do
      	 begin
      	 Delete(Cookies, 1, 1);
      	 end;

   	While Pos(':', Cookies) <> 1 do
    	begin
    	Delete(Cookies, 1, 1);
    	end;

    	Cookies := 'Cookies'+Cookies;

   	SetCookie2 := '';

   	While Pos('domain=.darkwarez.pl', Cookies)<> 1 do
    	 begin
    	 SetCookie2 := SetCookie2+Copy(Cookies, 1, 1);
    	 Delete(Cookies, 1, 1);
    	 end;

   	SetCookie2 := SetCookie2+'domain=.darkwarez.pl';


    end;

    Cookies := Memo1.Text;

    AssignFile(PliczekCookie, 'SID.txt');
    AssignFile(PliczekData, 'Data.txt');

    nCookies := Pos('phpbb2dww_sid', Cookies);
    If nCookies <> 0 then
    begin
      While Pos('phpbb2dww_data', Cookies) <> 1 do
      begin
      Delete(Cookies, 1, 1);
      end;

      While Pos('=', Cookies) <> 1 do
      begin
      Delete(Cookies, 1, 1);
      end;

      Delete(Cookies, 1, 1);
      phpbb2dww_data := '';
      While Pos(';', Cookies) <> 1 do
      begin
      phpbb2dww_data := phpbb2dww_data+Copy(Cookies, 1, 1);
      Delete(Cookies, 1, 1);
      end;
      { phpbb2dww_data= }     
      Forum.CookieManager.AddCookie('phpbb2dww_data='+phpbb2dww_data, '.darkwarez.pl');
      Logowania.Lines.Add('Cookie phpbb2dww_data= '+phpbb2dww_data);

      ReWrite(PliczekData);
      Write(PliczekData, phpbb2dww_data);
      CloseFile(PliczekData);

      While Pos('phpbb2dww_sid', Cookies) <> 1 do
      begin
      Delete(Cookies, 1, 1);
      end;

      While Pos('=', Cookies) <> 1 do
      begin
      Delete(Cookies, 1, 1);
      end;

      Delete(Cookies, 1, 1);
      SID := '';
      While Pos(';', Cookies) <> 1 do
      begin
      SID := SID+Copy(Cookies, 1, 1);
      Delete(Cookies, 1, 1);
      end;
      Forum.CookieManager.AddCookie('phpbb2dww_sid='+SID, '.darkwarez.pl');

      ReWrite(PliczekCookie);
      Write(PliczekCookie, SID);
      CloseFile(PliczekCookie);

      BrakSID := FALSE;

    end
    else
    begin
      If not FileExists('SID.txt') then
      begin
      	BrakSid := TRUE
      end
      else
      begin // jesli nie otrzymano cookie SessionID wczytaj ostatnio dostarczone z pliku tekstowego(Choc wg. Wiresharka set cookie dostaje zawsze, to przy wyzej uzytej metodzie "wydobywania" cookie jest ono widoczne tylko po nawiazaniu nowego polaczenia(np. rano podczas pierwszego polaczania z darkwarez.pl) - możliwe, że coś jest nie tak i przez to nie działa(Ale ogólnie inne działające autorespondery do darkwarez widziałem, więc wątpię, żeby mieli jakieś szczególne zabezpieczenia przed botami)
       Reset(PliczekCookie);
       Readln(PliczekCookie, SID);
       CloseFile(PliczekCookie);
       BrakSid := FALSE;

     	Forum.CookieManager.AddCookie('phpbb2dww_sid='+SID, '.darkwarez.pl');

       Reset(PliczekData);
       Readln(PliczekData, phpbb2dww_data);
       CloseFile(PliczekData);

   	Forum.CookieManager.AddCookie('phpbb2dww_data='+phpbb2dww_data, '.darkwarez.pl');

      
       Memo1.Lines.Add('Wczytywanie z plikow tekstowych. METODA 1 - Cookie Collection:');
       for Liczba := 0 to Forum.CookieManager.CookieCollection.Count - 1 do
       Memo1.Lines.Add(Forum.CookieManager.CookieCollection.Items[i].CookieText);    // Niestety, mimo, iż dodałem te cookie, to cookie ciągle nie są "widoczne", czyli też nie są wysyłane w nagłówkach zapytania
      end;
    end;

    { Cookie: phpbb2dww_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A32%3A%22843cb134a1811244d442265a5d3c9ace%22%3Bs%3A6%3A%22userid%22%3Bs%3A7%3A%221460688%22%3B%7D; phpbb2dww_sid=ddd3df7ad593b4c143869eb3220217b3 }

   // Forum.Request.CustomHeaders.Add('Cookie: phpbb2dww_data='+phpbb2dww_data+'; phpbb2dww_sid='+SID); // Jest to jedyna działająca metoda, dzięki czemu Cookie wychodzą w nagłówkach zapytania(Przeglądarka umieszcza je tam)

    If BrakSid then ShowMessage('Brak SID-a. Nie otrzymano Cookies');


Memo1.Lines.Add(Forum.Response.RawHeaders.CommaText);
Memo2.Lines.Add(Forum.Response.RawHeaders.Text);      



    { strumien Output przechwytuje odpowiedz serwera, czyli kod HTML jaki wyswietlil skrypt }

    if Pos('nieprawidłowe lub nieaktywne dane użytkownika', Output.DataString) <> 0 then  // jeżeli wystąpi taka linia
    begin
      bladlogowaniedrkwz := TRUE;
      ErrCode := 'Podałeś nieprawidłowe lub nieaktywne dane użytkownika';
    { teraz pozostaje juz tylko ten komunikat wyswietlic }
      Logowania.Lines.Add('Wystąpił błąd podczas logowania do Darkwarez: '+ErrCode);
    end;

    If bladlogowaniedrkwz = FALSE then
    begin
     Logowania.Lines.Add('Pomyslnie zalogowano do darkwarez.pl!');
     LoggedDrkwz := TRUE;
    end
    else
    begin
     LoggedDrkwz := FALSE;
    end;
  finally
  { zwolnienie zasobow }
    Input.Free;
    Output.Free;
    Button1.Enabled := True;
  end;
end; // koniec procedury logowania


{ Fragment autorespondera o odpowiedzi: }


 {wysłanie odpowiedzi}
 {http://darkwarez.pl/forum/posting.php?mode=reply&t=2384074}

 { subject=...&helpbox=Tekst+podkre%B6lony%3A+%5Bu%5Dtekst%5B%2Fu%5D++%28alt%2Bu%29&message=Tresc Wiadomosci&mode=reply&sid=3fd59ca71ccd6f55d422015e9345cd9e&t=3095446&post=Wyślij }



 Input3.WriteString(Format('subject=&helpbox=Tekst podkreślony: [u]tekst[/u] (alt+u)&message=%s&mode=reply&sid=%s&t=%s&post=Wyślij', [TrescOdpowiedzi2, SID, IdTematu]));



{
Nagłówki zapytania wysyłane przez przeglądarkę do odpowiedzi:

POST /forum/posting.php HTTP/1.1
Host: darkwarez.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://darkwarez.pl/forum/posting.php?mode=reply&t=2929422
Cookie: phpbb2dww_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0%3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A7%3A%221460688%22%3B%7D; phpbb2dww_sid=9b91b0347ebc2246778f3356ad0c2093; phpbb2dww_t=a%3A1%3A%7Bi%3A2929422%3Bi%3A1319722173%3B%7D
}


                       
Forum.Request.Referer := 'http://darkwarez.pl/forum/posting.php?mode=reply&t='+IdTematu;

 Forum.Post('http://darkwarez.pl/forum/posting.php', Input3, Output3);
 // Forum.Post('http://darkwarez.pl/forum/posting.php?mode=reply&t='+IdTematu, Input3, Output3); // zastanawiam się, czy to nie powinno być tak, ale firebug uważa, że posting.php?mode=... to referer, a post wysylam do posting.php 
StringOutput3 := Output3.DataString;
              
Forum.Request.Referer := 'http://darkwarez.pl/forum/';


{ phpbb2dww_t=a%3A1%3A%7Bi%3A2814508%3Bi%3A1319479672%3B%7D; path=/; domain=.darkwarez.pl }
               If Pos('Set-Cookie: phpbb2dww_t', StringOutput3) <> 0 then
                begin
                While Pos('Set-Cookie: phpbb2dww_t', StringOutput3) <> 1 do
                  begin
                  Delete(StringOutput3, 1, 1);
                  end;

                While Pos(':', StringOutput3) <> 1 do
                  begin
                  Delete(StringOutput3, 1, 1);
                  end;

                Delete(StringOutput3, 1, 1);

                  phpbb2dww_t := '';
                While pos(';', StringOutput3) <> 1 do
                  begin
                  phpbb2dww_t := phpbb2dww_t+Copy(StringOutput3, 1, 1);
                  Delete(StringOutput3, 1, 1);
                  end;

                  phpbb2dww_t := Trim(phpbb2dww_t);
		  Forum.CookieManager.AddCookie('phpbb2dww_t='+phpbb2dww_t, '.darkwarez.pl');
		  
                end;

Edit2.

Przeinstalowałem delphi, teraz cookie ze zbioru cookie collection są widoczne, jednak nie są wysyłane. Wyślę je manualnie. Możliwe, że w kodzie nie ma błędu, więc biorę się do pracy, ale jakbyście może coś znaleźli to dajcie znać;

1

Zamiast napisać od razu konkretnie, że kombinujesz z darkwarez.pl to byś dostał ode mnie tutaj konkretniejsze porady. Tylko, że ja mogę pomóc jedynie takim działającym kodem oraz exekiem w załączniku. Kod wykorzystuje do obsługi HTTP pakiet Synapse, nadal rozwijany i mniej według mnie o wiele problematyczny od Indy. A z tego co się orientuje to nadal można się moim programem zalogować, wyslać odpowiedź lub nowy post na "dw". Jest też logowanie na moje testowo - śmieciowe forum na jun.pl, bo kiedyś ktoś pytał o te dwa fora i miał z nimi problemy jakieś (z tego co pamiętam po prostu nie chciało mu się samodzielnie pokombinować). Jednak jeżeli uprzesz się przy zastosowaniu Indy to pomóc Ci musi ktoś inny (najpewniej tylko kAzek).

P.S.: mój kod tworzony oraz testowany był pod Delphi 7 - Personal. Z nowszymi Delphi niż wersja 2009 mogą być problemy ze stringami - wspominam o tym w moim artykule: Obsługa protokołu HTTP przy użyciu pakietu Synapse

0
olesio napisał(a)

Zamiast napisać od razu konkretnie, że kombinujesz z darkwarez.pl to byś dostał ode mnie tutaj konkretniejsze porady. Tylko, że ja mogę pomóc jedynie takim działającym kodem oraz exekiem w załączniku. Kod wykorzystuje do obsługi HTTP pakiet Synapse, nadal rozwijany i mniej według mnie o wiele problematyczny od Indy. A z tego co się orientuje to nadal można się moim programem zalogować, wyslać odpowiedź lub nowy post na "dw". Jest też logowanie na moje testowo - śmieciowe forum na jun.pl, bo kiedyś ktoś pytał o te dwa fora i miał z nimi problemy jakieś (z tego co pamiętam po prostu nie chciało mu się samodzielnie pokombinować). Jednak jeżeli uprzesz się przy zastosowaniu Indy to pomóc Ci musi ktoś inny (najpewniej tylko kAzek).

P.S.: mój kod tworzony oraz testowany był pod Delphi 7 - Personal. Z nowszymi Delphi niż wersja 2009 mogą być problemy ze stringami - wspominam o tym w moim artykule: Obsługa protokołu HTTP przy użyciu pakietu Synapse

Twój programik postuje i dzieje się to samo co po postowaniu moim programem - wyskakuje "Błąd ogólny" na darkwarez. Może zwiększyli zabezpieczenia przeciw botom? Ale jak patrzę, to i nagłówki zapytania w twoim jak w moim programie są takie same jak w mojej przeglądarce, a poza tym są inne działające postery.

Wyskakujący text błędu ma darkwarez(linia):

<th class="thHead" height="25"><b>Błąd Ogólny</b></th>
[...]
	<td align="center"><span class="gen">Wystąpił błąd</span></td>

Logowanie działa, tylko z samym postowaniem jest coś nie tak: user image

Jeśli wiesz, co jest nie tak, to pomóż proszę.

1

Ech. Jak olesio zmęczony po robocie nie ruszy tyłka i nie napisze, to jesteście jak dzieci we mgle. Nie wstyd Wam leniuchy. Inna osoba (chyba, że to Ty pod innym znanym mi nickiem) na GG napisała mi, że też ma problem z postowaniem na dw i moim kodem, a według niej dane słane POST'em się nie zmieniły, bo porównał z tymi wysyłanymi przez przeglądarkę. A g... prawda! Przecież pod WireSharkiem czy czym kolwiek innym czym można prześledzić pakiet - wyraźnie widać, że są one inne niż były w poprzedniej wersji mojego kodu. Dla postów słanych w OffTopicu jak sprawdziłem wszystko działa po staremu. Jednak już dla tych we wstawkach są one inne i takowe są wymagane, bo to chyba sprawdza oprogramowanie forum. Również nagłówki trzeba uzupełnić w taki sposób aby pokrywały się z tymi od prawdziwej przeglądarki Obsługa protokołu HTTP przy użyciu pakietu Synapse/Artykuły/Obsługa_protokołu_HTTP_przy_użyciu_pakietu_Synapse wyraźnie napisałem, że mogą się zdarzyć strony wymagające "bogatszego" nagłowka jak http://lockerz.com gdzie wystarczy samo accept, jak w kodzie podałem. Natomiast już dla dw nie sprawdzałem, co tam konkretnie trzeba, podałem taki jaki wysyła Opera. Pisanie nowych postów w dziale OffTopic działa. Nie wiem jak będzie z innymi przy nowych postach. I ostatni raz chce mi się wracać do tego programu i pomagać leniom ;/ Jak znowu coś serwer zmieni to pokombinujcie trochę sami. Po to człowiek poświęca swój czas. Pisze arta, ale po co go czytać - prawda? Można mieć moje wypociny w głebokim poważaniu i tylko czekać na gotowca ode mnie ;/ Nie zrażajcie się jednak moim narzekaniem, bo ja teraz mam mniej czasu na klepanie jakiego kolwiek kodu. Jednak po co mi pisać że dane słane POSTem się nie zmieniły, ale nagle forum przestało działać. Jednak skoro są też różniste artykuły, dokumentacja Synapse, sniffery czy debuggery HTTP i moja porada, że należy starać się wysłać jak najbliższe prawdziwej przeglądarce dane także przy użyciu Synapse to stosujcie się do tego. Poprawioną wersję 0.4 wraz z poprawioną funkcją do przygotowania tekstu, a konkretnie zamiany znaku spacji z + na %20 dołączam do tego posta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1