zoukankan      html  css  js  c++  java
  • delphi 之 get post

    没测试过这个

    var 
         Source:   TMemoryStream; 
         Response:   TStringStream   ; 
     begin 
     try 
             //   Set   the   properties   for   HTTP 
             idHTTP.Request.Username   :=   'www '; 
             idHTTP.Request.Password   :=   'www '; 
     //         idHTTP1.Request.ProxyServer   :=   '11.133.190.13 '; 
     //         idHTTP1.Request.ProxyPort   :=   StrToIntDef( '80 ',   80); 
             idHTTP.Request.ContentType   :=   'application/x-www-form-urlencoded '; 
               Response   :=   TStringStream.Create( ' '); 
                 try 
                         Source   :=   TMemoryStream.Create; 
                         try 
                             Source.LoadFromFile( 'unsub.xml ');   //发送这个XML包,反向取消请求 
                             idHTTP.Post( 'http://222.333.444.555/dsmp/dsmp.wsdl ',   Source,   Response); 
                         finally 
                           //   Source.Free; 
                         end; 
    
                     memo.Lines.Text   :=   Response.DataString;//返回的字串,可以把它存为XML就可以 
                     memo.Lines.SaveToFile( 'unsubresp.xml ');         //返回的反向取消应答包 
                 finally 
                     Response.Free; 
                 end; 
         finally 
         end

    这个方法试了 可以用

    以下仅供参考,要求在web页面写特殊的字符,根据返回的结果判断是否登陆成功,用户名,密码方式见下:

    View Code
    procedure   TForm1.Button1Click(Sender:   TObject); 
     var 
         Url:   string; 
         Response   :   TStringStream; 
         Request   :   TStrings; 
     begin 
         Memo1.Clear; 
         Response   :=   TStringStream.Create( ' '); 
         try 
             Request   :=   TStringList.Create; 
             try 
                 Request.Append( 'txtUserId=hengli&txtPassword=ysj); 
                 url   :=   'http://192.168.1.33/nmmis/index.aspx '; 
                 IdHTTP1.Request.ContentType   :=   'application/x-www-form-urlencoded '; 
                 IdHTTP1.Post(Url,   Request,   Response); 
                 Memo1.Lines.Text   :=   Response.DataString; 
             finally 
                 FreeAndNil(Request); 
             end; 
         finally 
             FreeAndNil(Response); 
         end; 
     end;

    通过idhttp上传文件到web上,然后返回上传的文件路径。

    View Code
    function   UpLoagFile(FileName:   String):   string; 
     var 
         obj   :   TIdMultiPartFormDataStream; 
         Url:   String; 
     begin 
         obj   :=   TIdMultiPartFormDataStream.Create; 
         try 
             obj.AddFile( 'Image ',FileName,   GetMIMETypeFromFile(FileName)); 
             http.Request.ContentType   :=   obj.RequestContentType; 
             obj.Position   :=   0; 
             Url   :=     'http://192.168.1.44/insertImage.aspx '; 
             Result   :=   http.Post(Url,   obj); 
         finally 
             obj.Free; 
         end; 
     end; 
    
     服务端,C#: 
     private   void   Page_Load(object   sender,   System.EventArgs   e) 
     { 
             foreach(string   f   in   Request.Files.AllKeys) 
             {   
                     string   fileName,   fullName; 
                     HttpPostedFile   postFile   =   Request.Files[f];   
                     if   (postFile.ContentLength   >   10) 
                     {   
           fileName   =   postFile.FileName; 
           //GetFileName(   fileName,   out   fullName   ); 
           fullName   =   "UpLoad/aaa.jpg " 
           postFile.SaveAs   (   Server.MapPath   (   fullName   )   ); 
           Response.Write   (fullName); 
     } 
             } 
     }
  • 相关阅读:
    2019-02-08 Python学习之Scrapy的简单了解
    2019-02-07 selenium...
    2019-02-06 单链表的整表创建及增删插
    2019-02-05 Linux的一些常用命令学习2
    2019-02-04 Linux的一些常用命令学习
    2019-02-03 线性表的顺序储存结构C语言实现
    2019-02-03 多进程和多线程的区别【】
    python 多进程
    Tftp文件传输服务器(基于UDP协议)
    多线程实现tcp聊天服务器
  • 原文地址:https://www.cnblogs.com/ccqin/p/2650348.html
Copyright © 2011-2022 走看看