Консультация № 183783
18.07.2011, 20:26
63.05 руб.
0 2 0
Здравствуйте! Прошу помощи в следующем вопросе:
Нужно отправить сообщение (пост запрос) на форум phpbb средствами C++ Builder 6 компонент Indy 10. Я уже написал часть кода (а именно- авторизация), но не знаю, как работать тут с куками и сессией, в рез-те отправить сообщение не получается. В инете одни примеры для дельфи, везде.

Какое-то время назад я спрашивал в соседнем разделе (PHP) про такой же вопрос (но ес-но на пхп), и мне все ответили. Вот ссылка https://rfpro.ru/question/183502 , помогите пожалуйста переделать это на C++ Builder 6 / Indy 10. Прилагаю часть кода (авторизация).

Приложение:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "networ.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "IdIOHandler"
#pragma link "IdIOHandlerSocket"
#pragma link "IdIOHandlerStack"
#pragma link "IdSSL"
#pragma link "IdDiscardUDPServer"
#pragma link "IdCookieManager"
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Ace="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
AnsiString Uag="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10";
AnsiString Chrset="windows-1251,utf-8;q=0.7,*;q=0.7";
AnsiString Lang="ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3";
AnsiString Datax="username=givi&password=111222&redirect=&login=%C2%F5%EE%E4";
AnsiString StrPage;
AnsiString Resp; //получаем ответ сервера сюда
//

TStringList* data;
data=new TStringList();
data->Add("username=givi");
data->Add("password=111222");
data->Add("redirect=");
data->Add("login=%C2%F5%EE%E4");

IdHTTP1->AllowCookies=true;
IdHTTP1->HandleRedirects=true;
IdHTTP1->Request->Host="testtest.flyfolder.ru";
IdHTTP1->Request->UserAgent=Uag;
IdHTTP1->Request->Accept=Ace;
IdHTTP1->Request->AcceptLanguage=Lang;
IdHTTP1->Request->AcceptCharSet=Chrset;
IdHTTP1->Request->Referer="http://testtest.flyfolder.ru/";
StrPage=IdHTTP1->Post("http://testtest.flyfolder.ru/login.php",data);
Resp=IdHTTP1->Response->ResponseText;
char *Resp1 = StrPage.c_str(); //конвертируем АнсиСтринг в Чар
IdHTTP1->Disconnect();
data->Free();

}

Обсуждение

Неизвестный
22.07.2011, 22:45
общий
Компоненты borland-а примерно одинаково работают в дельфи и с++, так что Вы вполне можете попробовать основываться на найденных примерах.
А Indy 10 вроде официально не поддерживается builder-ом?
Неизвестный
25.07.2011, 02:05
общий
А Indy 10 вроде официально не поддерживается builder-ом?

Этого не знаю.
Компоненты borland-а примерно одинаково работают в дельфи и с++, так что Вы вполне можете попробовать основываться на найденных примерах.

В том то и дело, что не получается.
Форма ответа