![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет.
Знаю вопрос уже мхом оброс и в инете тонны статей, но я походу туповат, ибо ничего не получилось, а изучить синапс хочется. Решил сделать что-то типа виджета на браузерную игру, который отображает статистику/инфу и т.п. о моём персе, обновляя через определённый промежуток времени. Это легко, спарсил и готово. Но я не могу авторизоваться( Ну вот где я тут ошибся? Код:
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, httpsend, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; type th=class(tthread) private public procedure execute; override; end; var Form1: TForm1; thh:th; h:Thttpsend; g:tstringlist; send:tstringstream; implementation {$R *.dfm} procedure th.Execute; begin h.UserAgent:='browser'; h.MimeType:='application/x-www-form-urlencoded'; h.Headers.Add('Referer: http://tiwar.ru/?sign_in=1'); send.WriteString('login=Testt&pass=123456'); h.Document.LoadFromStream(send); h.HTTPMethod('POST','http://tiwar.ru/?sign_in=1'); g.LoadFromStream(h.Document); form1.memo1.Lines.Add(utf8decode(h.Headers.Text)); form1.memo1.Lines.Add(inttostr(h.ResultCode)); form1.memo1.Lines.Add(utf8decode(g.Text)); end; procedure TForm1.Button1Click(Sender: TObject); begin thh:=th.Create(true); thh.FreeOnTerminate:=true; thh.Priority:=tpnormal; thh.Resume; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin send.Free; g.Free; h.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin h:=Thttpsend.Create; g:=tstringlist.Create; send:=tstringstream.Create; end; end. Ничего не пойму, запрос отправляется, по снифферу смотрел всё одинаково, так же как через браузер, но выдаёт что логин/пароль не верный. Хотя всё верно. На других играх тоже самое. Помогите разобраться пожалуйста |
#2
|
|||
|
|||
![]() Код:
procedure th.Execute; begin h.MimeType:='application/x-www-form-urlencoded'; send.WriteString('login=Testt&pass=123456'); h.Document.LoadFromStream(send); h.HTTPMethod('POST','http://tiwar.ru/?sign_in=1'); g.LoadFromStream(h.Document); form1.memo1.Lines.Add(utf8decode(h.Headers.Text)); form1.memo1.Lines.Add(inttostr(h.ResultCode)); form1.memo1.Lines.Add(utf8decode(g.Text)); end; Перед постом хедер чистить надо.а первый запрос на авторизацию без него слать. И без юзер агента. Вообщем попробуй Последний раз редактировалось Admin, 17.02.2016 в 19:28. |
Этот пользователь сказал Спасибо ApxaHGe1 за это полезное сообщение: | ||
Loca (20.02.2016)
|
#3
|
|||
|
|||
![]() Цитата:
ну вроде разобрался что к чему, немножко сложнее конечно чем на инди, но тоже норм. Больше с редиректами мучился. |