小弟在搞一个项目,是写一个客户端向一个服务端发送XML字符串,这个服务端要求基于HTTP协议来发送
各位兄弟有没有做过这一类的项目,用什么控件做好呢,有没有现成的代码提供给小弟参考参考

解决方案 »

  1.   

    我的笔记里有现成的,给分吧
    http://www.wanggq.cn/post/22.html
      

  2.   

    可以用Indy的组件,也可以用API的socket通信
    API的可参考
    http://blog.csdn.net/bdmh/archive/2010/08/31/5853121.aspx
    其实就是发送流
      

  3.   

    那个服务端没有给俱体的url地址给我的,只是给了我一个ip地址和port端口
    我想是不是用这种方式来实现:
     with IdHTTP1 do
      begin
        if not Connected then
        begin
          Host:=_HttpHost;
          Port:=_HttpPort;
          try
             Connect(2000);
          except
             MessageBox(Application.Handle,'HTTP连接失败!','错误',MB_OK);
             Exit;
          end;
        end;
        try
           WriteLn(xml_send);
           xml_return:=ReadLn();
        except
           on e:Exception do
           begin
             MessageBox(Application.Handle,PChar('报文发送失败!'+e.message) ,'系统提示',MB_OK);
             Disconnect;
             Exit;
           end;
        end;
      end;
      

  4.   

    首先你要根据服务器和端口连接服务端,然后发送xml流,但是有一个问题,你和服务端有没有传输的数据格式约定呢,总不能随便发个东西过去,就能接受吧,总要有个包头,包体啥的,这个要和服务端联系好
      

  5.   

    如果用IDHTTP来获取服务端返回的XML字符串是用idhttp的什么函数来获得呢?
      

  6.   

    一般用idhttp的get事件或方法,ics也能實現伺服器那端在判斷用戶端用的軟體,如果是IE6.0才會返回XML文檔,不然僅短短的返回幾十個位元組.. 
    procedure   TForm1.Button2Click(Sender:   TObject); 
    var 
        url:string; 
        s:string; 
    begin 
        url:= 'http://www.delphibbs.com/keylife/rss.asp '; 
        IdHTTP1.Request.UserAgent:= ' Mozilla/4.0   (compatible;   MSIE   6.0;) ';//加上它就行了. 
        s:=IdHTTP1.Get(url); 
        Memo1.Text:=s; end;