C
cgs1980
Unregistered / Unconfirmed
GUEST, unregistred user!
我使用 Indy 10 控件向一个论坛提交数据,在提交的数据中,我想包含一个超链接,代码如下:
procedure Test(name, id: string);
var
content: string;
i, count, npos: Integer;
LoginData: TStringList;
idHTTP: TIdHTTP;
begin
idHTTP := TIdHTTP.Create(nil);
LoginData := TStringList.Create;
try
idHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows;
U;
Windows NT 5.1 ) ';
idHTTP.Request.Accept := 'text/xml,application/xml,application/xhtml+xml,text/html';
idHTTP.Request.AcceptLanguage := 'zh-cn,zh;q=0.5' ;
idHTTP.Request.AcceptEncoding := 'gzip,deflate' ;
idHTTP.Request.AcceptCharSet := 'gb2312,utf-8;q=0.7,*;q=0.7';
idHTTP.Request.Connection := 'Keep-Alive';
idHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
idHTTP.Request.CacheControl := 'no-cache';
content := '<a href="http://www.test.com" target="_blank">Test</a>'
LoginData.Add('name=' + name);
LoginData.Add('id=' + id);
// content := TIdURI.Pathen
code(content);
// content := TIdURI.URLEncode(content);
LoginData.Add('content=' + content);
idHTTP.Post(CONST_URL, LoginData);
finally
LoginData.Free;
idHTTP.Free;
end;
end;
上述代码可以将数据提交到论坛,但在浏览器中,看到提交的超链接却显示为:
<a href="http://www.test.com" target="_blank">Test</a> (不是可以点击的那种超链接形式)
查看html源代码,其为:发现
“&
lt;a href="http://www.test.com" target="_blank"&
gt;Test &
lt;/a&
gt;
”(显然,post数据时,超链接中的 html标记被进行了转义处理)
在浏览器页面中,我手工向论坛提交数据,在论坛的输入框中填写 <a href="http://www.test.com" target="_blank">Test</a> ,发表后,却可以看见显示的是超链接的形式,我现在的问题是:在浏览器页面中,输入 <a href="http://www.test.com" target="_blank">Test</a> 可以在论坛正确显示超链接,为什么使用 Post 的形式提交数据却不能正确显示超链接, 我使用 TIdURI.Pathen
code,TIdURI.URLEncode对数据进行了处理,仍然不能显示超链接。
希望大家能够指点一下,非常感谢!
procedure Test(name, id: string);
var
content: string;
i, count, npos: Integer;
LoginData: TStringList;
idHTTP: TIdHTTP;
begin
idHTTP := TIdHTTP.Create(nil);
LoginData := TStringList.Create;
try
idHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows;
U;
Windows NT 5.1 ) ';
idHTTP.Request.Accept := 'text/xml,application/xml,application/xhtml+xml,text/html';
idHTTP.Request.AcceptLanguage := 'zh-cn,zh;q=0.5' ;
idHTTP.Request.AcceptEncoding := 'gzip,deflate' ;
idHTTP.Request.AcceptCharSet := 'gb2312,utf-8;q=0.7,*;q=0.7';
idHTTP.Request.Connection := 'Keep-Alive';
idHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
idHTTP.Request.CacheControl := 'no-cache';
content := '<a href="http://www.test.com" target="_blank">Test</a>'
LoginData.Add('name=' + name);
LoginData.Add('id=' + id);
// content := TIdURI.Pathen
code(content);
// content := TIdURI.URLEncode(content);
LoginData.Add('content=' + content);
idHTTP.Post(CONST_URL, LoginData);
finally
LoginData.Free;
idHTTP.Free;
end;
end;
上述代码可以将数据提交到论坛,但在浏览器中,看到提交的超链接却显示为:
<a href="http://www.test.com" target="_blank">Test</a> (不是可以点击的那种超链接形式)
查看html源代码,其为:发现
“&
lt;a href="http://www.test.com" target="_blank"&
gt;Test &
lt;/a&
gt;
”(显然,post数据时,超链接中的 html标记被进行了转义处理)
在浏览器页面中,我手工向论坛提交数据,在论坛的输入框中填写 <a href="http://www.test.com" target="_blank">Test</a> ,发表后,却可以看见显示的是超链接的形式,我现在的问题是:在浏览器页面中,输入 <a href="http://www.test.com" target="_blank">Test</a> 可以在论坛正确显示超链接,为什么使用 Post 的形式提交数据却不能正确显示超链接, 我使用 TIdURI.Pathen
code,TIdURI.URLEncode对数据进行了处理,仍然不能显示超链接。
希望大家能够指点一下,非常感谢!