I don't understand why you need such complex code for doing such simple task as building an url ! It's just a matter of a few string concatenation and calling UrlEncode for the parameters.
HttpCli1.URL := 'http://' + MyHostVar + '/' + MyPathVar + '?' + 'ParamName1=' + UrlEncode(MyParamVar1) + '&' + 'ParamName2=' + UrlEncode(MyParamVar2) + '&' + 'ParamName3=' + UrlEncode(MyParamVar3); -- [EMAIL PROTECTED] http://www.overbyte.be ----- Original Message ----- From: "David A. G." <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Sunday, February 12, 2006 5:42 PM Subject: Re: [twsocket] Encode URL > Thanks DZ-Jay. I think we need to add a more complete function, ..just > what > to do if we need to encode (correctly) a full URL to use with HttpCli? > ...It > was my problem the last week!! > > I have "hijacked", converted and shared a full URL encoder from > Indy10.0.52 > http://www.mcrenox.com.ar/uri.pas > > enjoy! > > David > > > > ----- Original Message ----- > From: "DZ-Jay" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Sunday, February 12, 2006 11:13 AM > Subject: Re: [twsocket] Encode URL > > >> Hello: >> The UrlEncode function is to encode strings to be included in URLs, by >> escaping any invalid characters, not to encode complete URLs. You can >> encode a complete URL, for example, when you want to send that URL as a >> parameter in the QueryString, but this is not what you want to do: >> >> http://www.foo.com/bar.cgi? >> url=http%3A%2F%2Fuser%3Apass%40www%2Esite%2Ecom%3A80%2Ffol%201%2Ffol%202 >> %2Ffile%201%2Ejpg%3Fpar%3D1%23name >> >> What you must do in your case, is to encode each part that potentially >> contains invalid characters, for example, directory or file names, or >> parameter names and values. You want to encode them individually, >> otherwise valid characters, such as '/' in paths and '=' or '&' in >> parameters, will be wrongly encoded. For example: >> >> url := 'http://'+user+':'+pass+'@'+site+':'+port; >> newurl := url >> + '/' + UrlEncode(folder1) >> + '/' + UrlEncode(folder2) >> + '/' + UrlEncode(filename) >> + '?' + UrlEncode(key[1]) + '=' + UrlEncode(value[1]) >> + '&' + UrlEncode(key[2]) + '=' + UrlEncode(value[2]); >> >> // Add the anchor >> If Anchor <> '' Then >> newUrl := newUrl + '#' + Anchor; >> End >> >> On Feb 10, 2006, at 17:46, David A. G. wrote: >> >>> Hello all >>> >>> I'm trying an HTTP-Get software but I found that UrlEncode (from >>> IcsUrl.pas) >>> is not working according the protocol. >>> >>> UrlEncode simply encodes all the URL without taking care of (parse) >>> Protocol, Folders, File and Data. >>> >>> Example: >>> >>> http : // user:[EMAIL PROTECTED] site .com:80/fol 1/fol 2/file >>> 1.jpg?par=1#name >>> >>> This URL must be encoded as: >>> >>> http : // www. site .com/fol%201/fol%202/file%201.jpg?par=1 >>> >>> but UrlEncode just makes: >>> >>> http%3A%2F%2Fuser%3Apass%40www%2Esite%2Ecom%3A80%2Ffol%201%2Ffol%202%2F >>> file%201%2Ejpg%3Fpar%3D1%23name >>> >>> Obviously I cannot use the URL without encoding, but I cannot use the >>> encode function provided. >>> >>> Any idea? >>> Thanks, >>> >>> David >>> >>> -- >>> 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 -- 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