Форум: "Сети";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c