powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi XE3 https post запрос - Delphi
12 сообщений из 12, страница 1 из 1
Delphi XE3 https post запрос - Delphi
    #39593568
BESO1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте ребята .
-- Есть https://www.icloud.com/ на это сайте у меня есть AppleID: glebo.jiqia@gtu.ge Пароль: MyTest7587432GeoCld
-- знаю только что силка можно открыть так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
{$R *.dfm}
uses ShellAPI;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  URL: string;
begin
  URL:= 'https://www.icloud.com/';
  URL := StringReplace(URL, '"', '%22', [rfReplaceAll]);
  ShellExecute(0, 'open', PChar(URL), nil, nil, SW_SHOWNORMAL);
end;
 
end.


на это силку хочу добавить AppleID: и Пароль: чтобы он автоматически открыл существующий аккаунт
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593617
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BESO1212,

1. ShellExecute - это не post-запрос, это открытие страницы (get-ом) в дефолтном браузере;
2. Аутентификацию придумали для того, чтобы пользователь вводил данные в браузере, а не программа-робот;
3. Пользователь-пароль можно передать в хеадере post-запроса в base64 чз двоеточие, кажется.
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593632
BESO1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор3. Пользователь-пароль можно передать в хеадере post-запроса в base64 чз двоеточие, кажется.
Можно пример пожалуйста ?
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593660
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BESO1212автор3. Пользователь-пароль можно передать в хеадере post-запроса в base64 чз двоеточие, кажется.
Можно пример пожалуйста ?
Код: pascal
1.
Headers := Headers + 'Authorization: Basic ' + base64encode( 'username:password' ) + #13;
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593755
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

Следущий вопрос будет "как запихнуть Headers в ShellExecute()" :)

2ТС: Тебе не ShellExecute() нужен, а WebBrowser скорее...
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593780
BESO1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterYuRock,

Следущий вопрос будет "как запихнуть Headers в ShellExecute()" :)

2ТС: Тебе не ShellExecute() нужен, а WebBrowser скорее...
1) Огромное всем спасибо что уделяете мне время
2) Для меня без разница ShellExecute() или WebBrowser Хочу открыть автоматически существующий аккаунт на https://www.icloud.com/
3) На немецком форуме на нашел такой пример http://www.delphipraxis.net/87585-twebbrowser-mit-password-und-username.html А я когда подключил модуль Base64; на Delphi_XE3 он не видит эту модуль . Вопрос: Надо установить дополнительные библиотека или что такой Base64 ?!
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593785
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BESO1212Хочу открыть автоматически существующий аккаунт
Автоматически не бывает. В браузере открыть или прочитать данные ответа на запрос в память?

BESO1212 Вопрос: Надо установить дополнительные библиотека или что такой Base64 ?!
Набери в гугле "Delphi base64 encoding".
Можно проверить в папке Source твоей делфи найти файлы содержащие текст base64 - может встроенное появилось.
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593819
BESO1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockBESO1212Хочу открыть автоматически существующий аккаунт
Автоматически не бывает. В браузере открыть или прочитать данные ответа на запрос в память?

BESO1212 Вопрос: Надо установить дополнительные библиотека или что такой Base64 ?!
Набери в гугле "Delphi base64 encoding".
Можно проверить в папке Source твоей делфи найти файлы содержащие текст base64 - может встроенное появилось.
Да он есть. Только я не понял почему не магу подключить это модуль ?! Ну пожалуйста (ради бога, ради дружба народов) скажите как подключить эту чудесный модуль ?
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593834
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BESO1212,


YuRockсодержащие текст base64и конечно же с расширением pas.
Заходишь в каждый из таких и ищешь что-то наподобие encodebase64 или base64encode.

Или с помощью википедии сделай такую функцию сам - там примитивный алгоритм.
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39593944
BESO1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockBESO1212,


YuRockсодержащие текст base64и конечно же с расширением pas.
Заходишь в каждый из таких и ищешь что-то наподобие encodebase64 или base64encode.

Или с помощью википедии сделай такую функцию сам - там примитивный алгоритм.
1) Нашел исходники Base64.pas https://github.com/xxtea/xxtea-delphi/blob/master/Base64.pas создал из этого исходников модуль
2) Закинул Base64.pas в папке проекта
3) Но там нету функция StrToBase64
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
{$R *.dfm}
uses
  Base64;

procedure TForm1.Button1Click(Sender: TObject);
const
  USERNAME = 'glebo.jiqia@gtu.ge';
  PASSWORD = 'MyTest7587432GeoCld';
var
  Url, Headers: OleVariant;
begin
  Url := 'https://www.icloud.com/';
  Headers := 'Authorization: Basic ' + { Функция StrToBase64 нету}(USERNAME + ':' + PASSWORD);
  ShowMessage(VarToStr(Headers));
  WebBrowser1.Navigate(Url, EmptyParam, EmptyParam, EmptyParam, Headers);

end;

end.


4) Что WebBrowser1 не поддерживает это ерунда=буду установить chromium. Но вопрос: Это исходник Base64 рабочий ? Если нет ! То выложите силка или нормальны Base64.pas пожалуйста
...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39594060
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BESO1212,

Вот тебе Base64 + строки.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
const
  cBase64Codec: array[0..63] of AnsiChar =
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  Base64Filler: AnsiChar = '=';

type
  TAByte = array[0..System.MaxInt-1] of Byte;
  TPAByte = ^TAByte;

function CalcEncodedSize(InSize: DWord): DWord;
begin
  // no buffers passed along, calculate outbuffer size needed
  Result := (InSize div 3) shl 2;
  if (InSize mod 3) > 0 then
    Inc(Result, 4);
end;

function CalcDecodedSize(const InBuffer; InSize: DWord): DWord;
begin
  Result := 0;
  if InSize = 0 then
    Exit;
  if (InSize mod 4 <> 0) then
    Exit;

  Result := InSize div 4 * 3;
  if (PByte(DWord(InBuffer) + InSize - 2)^ = Ord(Base64Filler)) then
    Dec(Result, 2)
  else
  if (PByte(DWord(InBuffer) + InSize - 1)^ = Ord(Base64Filler)) then
    Dec(Result);
end;

procedure Base64Encode(const InBuffer; InSize: DWord; var OutBuffer);
var
  X: Integer;
  PIn, POut: TPAByte;
  Acc: Cardinal;
begin
  if InSize > 0 then
  begin
    PIn := @InBuffer;
    POut := @OutBuffer;

    for X := 1 to InSize div 3 do
    begin
      Acc := PIn^[0] shl 16 + PIn^[1] shl 8 + PIn^[2];

      POut^[0] := Byte(cBase64Codec[(Acc shr 18) and $3f]);
      POut^[1] := Byte(cBase64Codec[(Acc shr 12) and $3f]);
      POut^[2] := Byte(cBase64Codec[(Acc shr 6 ) and $3f]);
      POut^[3] := Byte(cBase64Codec[(Acc       ) and $3f]);

      Inc(Cardinal(POut), 4);
      Inc(Cardinal(PIn),  3);
    end;
    case InSize mod 3 of
      1 :
      begin
        Acc := PIn^[0] shl 16;

        POut^[0] := Byte(cBase64Codec[(Acc shr 18) and $3f]);
        POut^[1] := Byte(cBase64Codec[(Acc shr 12) and $3f]);
        POut^[2] := Byte(Base64Filler);
        POut^[3] := Byte(Base64Filler);
      end;
      2 :
      begin
        Acc := PIn^[0] shl 16 + PIn^[1] shl 8;

        POut^[0] := Byte(cBase64Codec[(Acc shr 18) and $3f]);
        POut^[1] := Byte(cBase64Codec[(Acc shr 12) and $3f]);
        POut^[2] := Byte(cBase64Codec[(Acc shr 6 ) and $3f]);
        POut^[3] := Byte(Base64Filler);
      end;
    end;
  end;
end;

procedure Base64Decode(const InBuffer; InSize: DWord; var OutBuffer);
const
  cBase64Codec: array[0..255] of Byte =
  (
    $FF, $FF, $FF, $FF, $FF, {005>} $FF, $FF, $FF, $FF, $FF, // 000..009
    $FF, $FF, $FF, $FF, $FF, {015>} $FF, $FF, $FF, $FF, $FF, // 010..019
    $FF, $FF, $FF, $FF, $FF, {025>} $FF, $FF, $FF, $FF, $FF, // 020..029
    $FF, $FF, $FF, $FF, $FF, {035>} $FF, $FF, $FF, $FF, $FF, // 030..039
    $FF, $FF, $FF, $3E, $FF, {045>} $FF, $FF, $3F, $34, $35, // 040..049
    $36, $37, $38, $39, $3A, {055>} $3B, $3C, $3D, $FF, $FF, // 050..059
    $FF, $00, $FF, $FF, $FF, {065>} $00, $01, $02, $03, $04, // 060..069
    $05, $06, $07, $08, $09, {075>} $0A, $0B, $0C, $0D, $0E, // 070..079
    $0F, $10, $11, $12, $13, {085>} $14, $15, $16, $17, $18, // 080..089
    $19, $FF, $FF, $FF, $FF, {095>} $FF, $FF, $1A, $1B, $1C, // 090..099
    $1D, $1E, $1F, $20, $21, {105>} $22, $23, $24, $25, $26, // 100..109
    $27, $28, $29, $2A, $2B, {115>} $2C, $2D, $2E, $2F, $30, // 110..119
    $31, $32, $33, $FF, $FF, {125>} $FF, $FF, $FF, $FF, $FF, // 120..129
    $FF, $FF, $FF, $FF, $FF, {135>} $FF, $FF, $FF, $FF, $FF, // 130..139
    $FF, $FF, $FF, $FF, $FF, {145>} $FF, $FF, $FF, $FF, $FF, // 140..149
    $FF, $FF, $FF, $FF, $FF, {155>} $FF, $FF, $FF, $FF, $FF, // 150..159
    $FF, $FF, $FF, $FF, $FF, {165>} $FF, $FF, $FF, $FF, $FF, // 160..169
    $FF, $FF, $FF, $FF, $FF, {175>} $FF, $FF, $FF, $FF, $FF, // 170..179
    $FF, $FF, $FF, $FF, $FF, {185>} $FF, $FF, $FF, $FF, $FF, // 180..189
    $FF, $FF, $FF, $FF, $FF, {195>} $FF, $FF, $FF, $FF, $FF, // 190..199
    $FF, $FF, $FF, $FF, $FF, {205>} $FF, $FF, $FF, $FF, $FF, // 200..209
    $FF, $FF, $FF, $FF, $FF, {215>} $FF, $FF, $FF, $FF, $FF, // 210..219
    $FF, $FF, $FF, $FF, $FF, {225>} $FF, $FF, $FF, $FF, $FF, // 220..229
    $FF, $FF, $FF, $FF, $FF, {235>} $FF, $FF, $FF, $FF, $FF, // 230..239
    $FF, $FF, $FF, $FF, $FF, {245>} $FF, $FF, $FF, $FF, $FF, // 240..249
    $FF, $FF, $FF, $FF, $FF, {255>} $FF                      // 250..255
  );
var
  X, Y: Integer;
  PIn, POut: TPAByte;
  Acc : dword;
begin
  if (InSize > 0) and (InSize mod 4 = 0) then
  begin
    InSize := InSize shr 2;
    PIn := @InBuffer;
    POut := @OutBuffer;

    for X := 1 to InSize - 1 do
    begin
      Acc := 0;
      Y := -1;

      repeat
        Inc(Y);
        Acc := Acc shl 6;
        Acc := Acc or cBase64Codec[PIn^[Y]];
      until Y = 3;

      POut^[0] := Acc shr 16;
      POut^[1] := Byte(Acc shr 8);
      POut^[2] := Byte(Acc);

      Inc(Cardinal(PIn),  4);
      Inc(Cardinal(POut), 3);
    end;
    Acc := 0;
    Y := -1;

    repeat
      Inc(Y);
      Acc := Acc shl 6;

      if PIn^[Y] = Byte(Base64Filler) then
      begin
        if Y = 3 then
        begin
          POut^[0] := Acc shr 16;
          POut^[1] := Byte(Acc shr 8);
        end
        else
          POut^[0] := Acc shr 10;
        Exit;
      end;

      Acc := Acc or cBase64Codec[PIn^[Y]];
    until Y = 3;

    POut^[0] := Acc shr 16;
    POut^[1] := Byte(Acc shr 8);
    POut^[2] := Byte(Acc);
  end;
end;

procedure Base64EncodeStr(const InText: AnsiString; var OutText: AnsiString);
var
  InSize, OutSize: DWord;
  PIn, POut: Pointer;
begin
  // get size of source
  InSize := Length(InText);
  // calculate size for destination
  OutSize := CalcEncodedSize(InSize);

  // prepare AnsiString length to fit result data
  SetLength(OutText, OutSize);

  if OutSize > 0 then
  begin
    PIn := @InText[1];
    POut := @OutText[1];

    // encode !
    Base64Encode(PIn^, InSize, POut^);
  end;
end;

procedure Base64DecodeStr(const InText: AnsiString; var OutText: AnsiString);
var
  InSize, OutSize: DWord;
  PIn, POut: Pointer;
begin
  // get size of source
  InSize := Length(InText);
  // calculate size for destination
  PIn := @InText[1];
  OutSize := CalcDecodedSize(PIn, InSize);

  // prepare AnsiString length to fit result data
  SetLength(OutText, OutSize);

  if OutSize > 0 then
  begin
    FillChar(OutText[1], OutSize, '.');
    POut := @OutText[1];

    // encode !
    Base64Decode(PIn^, InSize, POut^);
  end;
end;

function Base64EncodeString(const InText: AnsiString): AnsiString;
begin
  Base64EncodeStr(InText, Result);
end;

function Base64DecodeString(const InText: AnsiString): AnsiString;
begin
  Base64DecodeStr(InText, Result);
end;

function Base64EncodeToString(const InBuffer; InSize: DWord): AnsiString;
var
  POut: Pointer;
begin
  SetLength(Result, CalcEncodedSize(InSize));
  POut := @Result[1];
  Base64Encode(InBuffer, InSize, POut^);
end;

...
Рейтинг: 0 / 0
Delphi XE3 https post запрос - Delphi
    #39594156
syool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуйтесь компонентами Indy (TIdHttp для HTTP запросов) с TIdSSLIOHandlerSocketOpenSSL. В сети много примеров.

https://stackoverflow.com/a/19892703
https://stackoverflow.com/questions/6683127/delphi-idhttpssl
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi XE3 https post запрос - Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]