我需要本地程序和WEB SERVER实时通讯,本地程序连续(大概1秒一次)向WEB SERVER发送数据,由于数据量超过了GET方法允许的最大值,所有要采用POST方式,另外本地程序不需要知道提交数据是否成功,也就是不需要判断WEB SERVER的返回值,所有DEPHI程序只需要完成提交动作,本地程序认为一次提交已经完成,采用异步方式可以节约本地程序CPU等待服务器返回的时间。本人认为用ID或者ICS一定能实现,但是我对这两个东西没有怎么用过,还好网上还有那么多热心的朋友可以期待,希望知道的朋友给段代码,谢谢大家,没有办法,老板要求的时间太紧了,搞的我没有时间研究技术。郁闷,老板一点也不厚道。

解决方案 »

  1.   

    to  fjx99(fjx99)
    这和TWebBrower没有关系
    应该是用ICS 或者 Indy这些控件组中的HTTPCLIENT类型的控件,我不熟悉,
    想借用一下大家现成的代码
      

  2.   

    一些有用的方法(Uses MSHTML单元后)://取得body的innerHtml
    doc := WebBrowser1.Document as IHTMLDocument2;
    ShowMessage(doc.body.innerHTML);//提交form
    form := doc.forms.item(0, 0) as IHTMLFormElement;
    form.submit;//点击按钮,btn_Ok是按钮的id
    WebBrowser1.OleObject.Document.all.namedItem('btn_Ok').Click;//填写输入框,username是输入框的id
    WebBrowser1.OleObject.Document.all.username.Value := 'aaaaaaa';
      

  3.   

    我以为你是要自动填写html的值,然后提交,工作都在asp,aspx中做
      

  4.   

    用indy的IdHTTP
    var
    logininfo:TStringlist;
    Response: TStringStream;
    begin
    logininfo:=TStringlist.Create;
    Response:=TStringStream.Create('');//结果
    try
    logininfo.Add('action="UserLogin.aspx"');
    logininfo.Add('CSDNUserLogin:tb_UserName=abc);
    logininfo.Add('username=abc);
    logininfo.Add('password=abc);
    logininfo.Add('submit=登录');
    IdHTTP1.Post('http://www.csdn.net/',logininfo,Response);
    Memo1.Lines.Text:=Response.DataString;
    finally
    freeandnil(logininfo);
    freeandnil(Response);
    end;
    end;
      

  5.   

    getit911(Windows转Linux中)的方法没有考虑异步,考虑其他方法算了