[高分求助,在线]如何使用TidHttp控件向一个URL传送XML,并得到返回的XML?

yczyk 2004-04-15 04:00:50
以下是我的部分代码, 请高手来参考一下:
var
XMLList:TStrings;
begin
//加入XML信息
XMLList := TStringlist.Create;
XMLList.Add('<?xml version="1.0" encoding="GB2312"?>');
XMLList.Add('<svc_init>');
XMLList.Add('<hdr ver="1.0.0">');
XMLList.Add('<client>');
...
LocalStr := IdHTTP1.Post(LSPURL,XMLList); //这样调用有错吗?例如LSPURL为211.125.220.113/leset/set

end;
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng316 2004-09-09
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
Source: TMemoryStream;
Response: TStringStream;
begin

try

// Set the properties for HTTP
HTTP.Request.Username := 'www';
HTTP.Request.Password := 'www';
HTTP.Request.ProxyServer := '11.133.190.13';
HTTP.Request.ProxyPort := StrToIntDef('80', 80);
HTTP.Request.ContentType := 'application/x-www-form-urlencoded';

HTTP.Intercept :=ssl;
// HTTP.InterceptEnabled := true;



Response := TStringStream.Create('');
try

Source := TMemoryStream.Create;
try
Source.LoadFromFile('c:\Login.xml');

HTTP.Post('http://202.106.80.72', Source, Response);
finally
// Source.Free;
end;

memoHTML.Lines.Text := Response.DataString;//返回的字串,你可以把它存为XML就可以呢
finally
Response.Free;
end;


finally

end;

end;
zhuangbx220 2004-09-07
  • 打赏
  • 举报
回复
type regThread=class(TThread)
private
IdHTTPreg:TIdHTTP;
fs:TFileStream;
Response : TStringStream;
st:TStringList;
bmp: TBITMAP;
FUserID:string;
FUserPassword:string;
FN:string;
FEnd:boolean;
public
constructor Create;
destructor Destroy; override;
procedure Execute; override;
property RegeditEnd:boolean read FEnd;
property UserID:string read FUserID;
property UserPassword:string read FUserPassword;
end;


constructor regThread.Create;
var
i:integer;
begin
inherited Create(false); //false 创建后立即执行
FreeOnTerminate:=false; //false 不自动结束线程
FEnd:=false;i:=0;
fn:=format('%.4d.~tmp',[i]);
while FileExists(fn) do
begin
inc(i);
fn:=format('%.4d.~tmp',[i]);
end;
IdHTTPreg:=TIdHTTP.Create(nil);
Response := TStringStream.Create('');
bmp:=TBITMAP.Create;
st:=TStringList.Create;
fs:=TFileStream.Create(fn,fmCreate or fmShareDenyWrite);
end;

destructor regThread.Destroy;
begin
IdHTTPreg.Free ;
Response.Free ;
st.Free ;
bmp.Free ;
if fs<>nil then fs.Free;
deletefile(fn);
inherited Destroy;
end;
yczyk 2004-04-19
  • 打赏
  • 举报
回复
继续,如何在多线程里动态的创建TidHttp控件呢?
lgqTiger 2004-04-15
  • 打赏
  • 举报
回复
可不可以将返回的XML字符串内容
贴出来看看?
lgqTiger 2004-04-15
  • 打赏
  • 举报
回复
对不起,XML不懂。
估计是数据转换时出错。
在实际要求显示指定的XML时才能检测到。
yczyk 2004-04-15
  • 打赏
  • 举报
回复
对方的页面接收到我的字符串后将返回一个XML格式的字符串,可是我执行后没有错, 却总返回一个报错的XML 页面给我是不是我的调用有错啊?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧