Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2011, 23:02   #1
xakkkkker
Форумчанин
 
Аватар для xakkkkker
 
Регистрация: 15.12.2007
Сообщений: 226
По умолчанию СМС через сайт и Synapse

Здравствуйте. Пишу программу для отправки смс через сайт.
Загрузка капчи сделал, а вот отправка данных что то не идет. Скажите что не так делаю. Также прилагаю весь исходник.
По нажатию кнопки 1 происходит загрузка капчи, по нажатию кнопки 2 происходит отправка данных.

Код:
function GetUrl(Value: String): String;
var
  I: Integer;
begin
  I:= Pos('//www.google.com/recaptcha/api/', Value);
  Delete(Value, 1, I-1);
  I:= Pos('"', Value);
  Result:= Copy(Value, 1, I-1);
end;

function GetUrlEx(SubStr, Value: String): String;
var
  I: Integer;
begin
  I:= Pos(SubStr, Value);
  Delete(Value, 1, I);
  I:= Pos('''', Value);
  Delete(Value, 1, I);
  I:= Pos('''', Value);
  Result:= Copy(Value, 1, I-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
 var
  http: THTTPSend;
  jpeg: TJpegimage;
  Url: String;
  Server: String;
  Challenge: String;
begin
  Memo1.Lines.Clear;
  http:= THTTPSend.Create;
  http.HTTPMethod('GET','https://sendsms.megafon.ru/');
  Memo1.Lines.LoadFromStream(http.Document);
  Url:= 'https:'+GetUrl(Memo1.Text);
  Edit1.Text:= Url;

  http.Clear;
  http.HTTPMethod('GET', Url);
  Memo1.Lines.LoadFromStream(http.Document);

  Server:= GetUrlEx('server', Memo1.Text);
  Challenge:= GetUrlEx('challenge', Memo1.Text);
  Memo1.Lines.Add(Server);
  Memo1.Lines.Add(Challenge);

  http.Clear;
  http.HTTPMethod('GET', Server+'image?c='+Challenge);
  jpeg:= TJpegimage.Create;
  jpeg.LoadFromStream(http.Document);
  Image1.Picture.Assign(jpeg);

  jpeg.Free;
  http.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  http: THTTPSend;
  d: TStringStream;
begin
   http:= THTTPSend.Create;
 with http do
  begin
    d:=TStringStream.Create;
    D.WriteString('prefix='+Edit2.Text);
    D.WriteString('addr='+Edit3.Text);
    D.WriteString('message='+Memo3.Text);
    D.WriteString('recaptcha_response_field='+Edit4.Text);
    Http.Document.LoadFromStream(D);
     if httpMethod('POST', 'https://sendsms.megafon.ru/') then
      Memo2.Lines.LoadFromStream(http.Document);
  end;
   http.Free;
   d.Free;
end;
Вложения
Тип файла: zip KurSach_OS.zip (560.8 Кб, 18 просмотров)
xakkkkker вне форума Ответить с цитированием
Старый 14.11.2011, 09:44   #2
Mifody
Заблокирован
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

эээм, проверять сейча код не буду, но на вскидку:
1. при отправке вполне возможно нужны куки из получения картинки
2. при отправке передается текст капчи, а код? хотя вполне возможно он как раз хранится в куках (см. п.1)
Mifody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка почты через SMTP с использованием Synapse chandrasecar Работа с сетью в Delphi 5 26.06.2012 13:04
Post запрос через Synapse Lauri Общие вопросы Delphi 11 22.03.2011 12:18
оплата через смс anonymous000 Свободное общение 5 25.09.2010 11:41
Отправка СМС через Outlook макросом sasha_prof Microsoft Office Excel 0 25.01.2010 11:01
Отправка СМС через сайт RIO Работа с сетью в Delphi 3 14.09.2009 23:24