Hello,
None of the following events are called:
HTTPClient->OnBeforeHeaderSend = HTTPClientBeforeHeaderSend;
HTTPClient->OnHeaderBegin = HTTPClientHeaderBegin;
HTTPClient->OnHeaderData = HTTPClientHeaderData;
HTTPClient->OnHeaderEnd = HTTPClientHeaderEnd;
HTTPClient->OnRequestDone = HTTPClientRequestDone;
HTTPClient->OnRequestHeaderBegin = HTTPClientRequestHeaderBegin;
HTTPClient->OnRequestHeaderEnd = HTTPClientRequestHeaderEnd;
HTTPClient->OnDocBegin = HTTPClientDocBegin;
HTTPClient->OnDocData = HTTPClientDocData;
HTTPClient->OnDocEnd = HTTPClientDocEnd;
HTTPClient->OnSendBegin = HTTPClientSendBegin;
HTTPClient->OnSendData = HTTPClientSendData;
HTTPClient->OnSendEnd = HTTPClientSendEnd;
HTTPClient->OnSessionConnected = HTTPClientSessionConnected;
HTTPClient->OnSessionClosed = HTTPClientSessionClosed;
It works without threads. There is no lasterror("0"). I have the following
messagepump:
void __fastcall THTTPThread::messagePump(void)
{
MSG msg;
try
{
while(!Terminated && GetMessage(&msg, NULL, 0, 0))
{
processServerThreadMessage(msg);
}
}
catch(ESocketException &e)
{
}
}
//---------------------------------------------------------------------------
void __fastcall THTTPThread::processServerThreadMessage(const MSG &msg)
{
if(msg.message == WM_HTTP_CLIENT_THREAD_ATTACH)
{
httpServerClientClass *clientObject =
(httpServerClientClass*)(void*)msg.wParam;
clientObject->ThreadAttach();
clientObject->createHTTPClient();
}
else if(msg.message == WM_HTTP_CLIENT_THREAD_DETACH)
{
httpServerClientClass *clientObject =
(httpServerClientClass*)(void*)msg.wParam;
clientObject->serverThread->HTTPServerClientDisconnected(NULL,
clientObject, msg.lParam);
THTTPServer *HTTPServer = clientObject->FServer;
lockCriticalSection(HTTPServer->connectDisconnectClientCS);
delete clientObject;
releaseCriticalSection(HTTPServer->connectDisconnectClientCS);
}
else
DispatchMessage(&msg);
}
//---------------------------------------------------------------------------
FYI: In our dersign, there is the serverThread for listening and there are 2
threads per CPU clientThreads.
Best Regards,
SubZ
----- Original Message -----
From: "Wilfried Mestdagh" <[EMAIL PROTECTED]>
To: "ICS support mailing" <[email protected]>
Sent: Thursday, December 01, 2005 8:52 PM
Subject: Re: [twsocket] Problem with THttpCli
> Hello SZ,
>
> I think so yes, but I'm not very familiar with THttpCli component. I use
> THttpSrv often but not the client.
>
> But to come back on your error. Can you eather put a try/catch block in
> all events, or try to debug with the IDE option 'break on delphi
> exception' on ? I'm pretty sure the original exception is coming from a
> code fragment of you and is catched by the OnError of the ctrlSocket.
>
> I'm not 100% sure of the LastError, I just found it in the comment on
> top. I never used OnError but still it is used by THttpCli component.
>
> ---
> Rgds, Wilfried [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
> http://www.mestdagh.biz
>
> Thursday, December 1, 2005, 18:50, Fastream Technologies wrote:
>
>> THttpCli(Sender....LastError reads "0" in OnSocketError.
>
>> What is unusual about my code is that I do not use a stream nor a file to
>> get the data. I want to use the OnDocData and OnHeaderData events to read
>> packet-by-packet. Is this possible? If yes how?
>
>> Regards,
>
>> SubZ
>
>> ----- Original Message -----
>> From: "Wilfried Mestdagh" <[EMAIL PROTECTED]>
>> To: "ICS support mailing" <[email protected]>
>> Sent: Thursday, December 01, 2005 12:18 PM
>> Subject: Re: [twsocket] Problem with THttpCli
>
>
>>> Hello SZ,
>>>
>>>> It gives no exception but throws ESocketError just after DNSLookup
>>>> which
>>>> is
>>>> successful.
>>>
>>> Do you mean ESocketException ?
>>> What is the error ?
>>>
>>> ---
>>> Rgds, Wilfried [TeamICS]
>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>> http://www.mestdagh.biz
>>>
>>> Wednesday, November 30, 2005, 15:21, Fastream Technologies wrote:
>>>
>>>> Hello,
>>>
>>>> I chose the second method (THttpCli) but the below code fails in a
>>>> thread:
>>>
>>>> HTTPClient = new THttpCli(NULL);
>>>> HTTPClient->MultiThreaded = true;
>>>> HTTPClient->FollowRelocation = false;
>>>> HTTPClient->NoCache = false;
>>>> HTTPClient->RcvdStream = NULL;
>>>> HTTPClient->SendStream = NULL;
>>>> // all the events are assigned here
>>>
>>> HTTPClient->>URL = "http://" + targetServerIP + ":" + targetServerPort +
>>>> FPath;
>>>
>>>> if(FParams.Length())
>>>> HTTPClient->URL += "?" + FParams;
>>>
>>>> try
>>>> {
>>>> HTTPClient->GetASync();
>>>> }
>>>> catch(...
>>>
>>>> It gives no exception but throws ESocketError just after DNSLookup
>>>> which
>>>> is
>>>> successful. I tried with www.intel.com and the IE works just fine from
>>>> here.
>>>> I have a proxy setting for IE but that's optional and Mozilla works
>>>> without
>>>> proxy ok. I also tried to point socketspy to intel.com and used browser
>>>> to
>>>> access localhost:8000 (the port socketspy runs on) which worked but
>>>> pointing
>>>> HTTPClient did not.
>>>
>>>> Any help would be appreciated. I am using the November (downloaded
>>>> today)
>>>> beta of ICS with -yet- no SSL.
>>>
>>>> Best Regards,
>>>
>>>> SZ
>>>
>>>
>>> --
>>> To unsubscribe or change your settings for TWSocket mailing list
>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>> Visit our website at http://www.overbyte.be
>
>
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be