Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.21;
Скачать: CL | DM;

Вниз

Пост запрос   Найти похожие ветки 

 
happy   (2007-12-08 09:48) [0]

Доброго времени суток!
В общем есть скрипт на php такого вида:

<?
$data=$_POST["data"];
       $filename = date("H_i-d.m.Y", time()+3600*6).".txt";
       $fp=fopen($filename, "w");
fwrite($fp, base64_decode($data));
fclose($fp);
?>

Есть строка зашифрованная base64.
Вопрос:
Как передать средствами WinApi
этому скрипту POST запросом строку чтобы он ее записал в файл?


 
Happy   (2007-12-08 14:15) [1]

Пробую отправить так:
procedure SendPOSTData(const szHost, szPath, szData: PChar);
var
 szHeaders: TStr;
 hOpenHandle,
 hConnectHandle,
 hResourceHandle: Pointer;
begin
 hOpenHandle := InternetOpen(nil, 0, nil, nil, 0);
 if hOpenHandle <> nil then
 begin
   hConnectHandle := InternetConnect(hOpenHandle,
                                     szHost,
                                     80,
                                     nil,
                                     nil,
                                     3,
                                     0,
                                     0);
   if hConnectHandle <> nil then
   begin
     hResourceHandle := HttpOpenRequest(hConnectHandle,
                                        "POST",
                                        szPath,
                                        nil,
                                        nil,
                                        nil,
                                        $00400000,
                                        0);
     if hResourceHandle <> nil then
     begin
       ZeroMemory(@szHeaders, SizeOf(szHeaders));
       lstrcpy(szHeaders, "Content-Type: application/x-www-form-urlencoded");
       lstrcat(szHeaders, #10#13#0);
       HttpSendRequest(hResourceHandle,
                       szHeaders,
                       Length(szHeaders),
                       szData,
                       lstrlen(szData));
     end;
     InternetCloseHandle(hResourceHandle);
   end;
   InternetCloseHandle(hConnectHandle);
 end;
 InternetCloseHandle(hOpenHandle);
end; //SendPOSTData

Половина строки - иероглифы.
Строку перевожу в Base64 так:

function Base64Encode(szStr: PChar): PChar;
var
 dwSize: Dword;
begin
 CryptBinaryToStringA(szStr, lstrlen(szStr), 1, nil, dwSize);
 Result := HeapAlloc(GetProcessHeap, 0, dwSize);
 CryptBinaryToStringA(szStr, lstrlen(szStr), 1, Result, dwSize);
end; //Base64Encode


 
homm ©   (2007-12-08 14:46) [2]

Наверняка в indy должны быть уже готовые решения.


 
Happy   (2007-12-08 16:55) [3]


> Наверняка в indy должны быть уже готовые решения.

Хотелось бы сделать средствами WinApi.



Страницы: 1 вся ветка

Текущий архив: 2008.09.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
2-1218377845
mefodiy
2008-08-10 18:17
2008.09.21
Количество записей в отфильтрованной ADOQuery


3-1206401557
Drowsy
2008-03-25 02:32
2008.09.21
MDX в DBF.


15-1217065057
Andy BitOff
2008-07-26 13:37
2008.09.21
покупателю вернули деньги за Windows Vista


2-1218107846
Newss
2008-08-07 15:17
2008.09.21
Вращение


2-1218091976
inforoom
2008-08-07 10:52
2008.09.21
Програмно выделить узел TreeView1