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

Вниз

WinInet. Проблемы с HttpSendRequest.   Найти похожие ветки 

 
VAleksey ©   (2004-12-21 10:05) [0]

Имею Win2000, установленный на ней IIS 5.0 и D5.
Есть тестовое приложение со следующим кодом, который работает:

procedure TfmMain.Button1Click(Sender: TObject);
var
 hURL:HINTERNET;
 Buf:Pchar;
 vB:Cardinal;
 tStr:String;
begin
 if not Assigned(FInetSession) then
   FInetSession := InternetOpen(PChar(C_INET_USER),INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
 hURL := InternetOpenUrl(FInetSession,C_MY_HTTP_SERVER + C_MY_URL_ON_ISAPI ,nil,0,0,0);
 if hURL = nil then
   begin
     ShowMessage("False");
   end
 else
   begin
     InternetReadFile(hURL,Buf,10000,vB);
     tStr := Buf;
     SetLength(tStr,vB);
     Memo1.Text := tStr;
   end;
 InternetCloseHandle(hURL);
 InternetCloseHandle(FInetSession);
end;


И следующим кодом который не работает:

procedure TfmMain.Button2Click(Sender: TObject);
var
ISession, IConnect: HINTERNET;
hHttpFile:HINTERNET;
BufData:PChar;
Length,xParam:Cardinal;

begin
 ISession := InternetOpen(C_INET_USER,INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
 IConnect := InternetConnect(ISession,C_MY_HTTP_SERVER,INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
 hHttpFile := HttpOpenRequest(IConnect,
                              "GET",
                              C_MY_URL_ON_ISAPI,
                              HTTP_VERSION,
                              nil,
                              nil,
                              INTERNET_FLAG_DONT_CACHE or INTERNET_FLAG_KEEP_CONNECTION,
                              0);
 try
   Check(not HttpSendRequest(hHttpFile,nil,0,nil,0));
   xParam := 1000;
   Length := 1000;
   Memo1.Lines.Clear;
   Memo1.Lines.Add("Content DESCRIPTION = " + Trim(String(BufData)));
   InternetReadFile(hHttpFile,BufData,Length,xParam);
   Memo1.Lines.Add("");
   Memo1.Text := Memo1.Text + String(bufdata);
 finally
   InternetCloseHandle(hHttpFile);
   InternetCloseHandle(IConnect);
   InternetCloseHandle(ISession);
 end;
end;


Смысл кода - поместить в Memo запрашиваемую страницу :-)).
Неработающий код выдает ошибку : "The server name or address could not be resolved"
В чем причина?
Искал причину и в MSDN, который говорит, что в принципе код идентичен, Google и Яндекс, но может мимо прошел??

PS
Процедура Check:
procedure Check(Error: Boolean);
var
 ErrCode: Integer;
 S: string;
begin
 ErrCode := GetLastError;
 if Error and (ErrCode <> 0) then
 begin
   SetLength(S, 256);
   FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, Pointer(GetModuleHandle("wininet.dll")),
     ErrCode, 0, PChar(S), Length(S), nil);
   SetLength(S, StrLen(PChar(S)));
   while (Length(S) > 0) and (S[Length(S)] in [ #10, #13]) do
     SetLength(S, Length(S) - 1);
   raise Exception.Create(S);
 end;
end;


Значения констант:
Const
 C_INET_USER = "hs_vas application";
 C_MY_HTTP_SERVER = "http://a_vorobyoff";
 C_MY_URL_ON_ISAPI = "/Gals/Dlls/ISAPITest.dll/ISAPITest";


 
Seeker ©   (2004-12-21 10:33) [1]

Наверное ты намудрил с C_MY_HTTP_SERVER , попробуй без http.
тут работающий пример http://delphimaster.net/view/6-1102978825/


 
VAleksey ©   (2004-12-21 10:36) [2]


> Seeker ©   (21.12.04 10:33)

Спсибо.
Действительно, если убрать в C_MY_HTTP_SERVER подстроку "http://", то все работет также как и в предыдущем примере.



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

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

Наверх




Память: 0.47 MB
Время: 0.092 c
14-1106043953
ocean
2005-01-18 13:25
2005.02.27
Женщина-программист


1-1107928094
JohnKorsh
2005-02-09 08:48
2005.02.27
Как грамотно стиреть директорию ?


14-1107345166
Никита
2005-02-02 14:52
2005.02.27
Почему кладовка заперта?


14-1107851510
uw
2005-02-08 11:31
2005.02.27
Eclipse не запускается


3-1106921457
denis24
2005-01-28 17:10
2005.02.27
Как побороть FIBDataset