delphi 之 get post

http://www.cnblogs.com/ccqin/archive/2012/08/22/2650348.html

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页面写特殊的字符,根据返回的结果判断是否登陆成功,用户名,密码方式见下:

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上,然后返回上传的文件路径。

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);
 }
         }
 }

时间: 2024-10-05 08:47:13

delphi 之 get post的相关文章

Delphi常用系统函数总结

字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加. 函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. Indexd : 从第几位开始拷贝. Count : 总共要拷贝几位. 从母字符串拷贝至另一个字符串. 函数原型 pro

最新的Delphi版本号对照

The CompilerVersion constant identifies the internal version number of the Delphi compiler. It is defined in the System unit and may be referenced either in code just as any other constant: if CompilerVersion = 20 then sCompilerName := 'Delphi 2009';

Delphi XE10 dxLayoutControl 控件应用指南

http://www.cnblogs.com/Bonny.Wong/p/7440288.html DevExpress VCL套件是一套非常强大的界面控件,可惜关于Delphi开发方面的说明太少,有些控件使用起来一头雾水,不知从何下手.本节详细介绍在Delphi Xe10 Seattle中如何利用dxLayoutControl 控件来做界面布局. 1.  首先从工具箱面板中将dxLayoutControl放在Form上,设置2个关键属性如下: 属性 属性值 说明 Align alClient 一

delphi 移动开发博客地址收集

这个是各位博主学习整理的笔记,很值得大家学习. XE2011的博客: http://www.cnblogs.com/xe2011/ 万一的博客:http://www.cnblogs.com/del/ 武稀松的博客:http://www.raysoftware.cn/ delphiteacher的博客:http://blog.csdn.net/DelphiTeacher 我一路走来的博客:http://blog.csdn.net/tingsking18/article/details/477210

Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用

一.Android平台编程方式:      1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现)      2.自从ndk r5发布以后,已经允许完全用C/C++ 来开发应用或者游戏,而不再需要编写任何Java 的代码   Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序. 二.跨平台移动开发   Delphi使用android的NDK是通过JNI接口,封装好了,不用自己

TStringBuilder类 - Delphi

摘自万一老师的博客,略作整理. //TStringBuilder.Create 可以无参数 procedure TForm1.Button1Click(Sender: TObject); var sb: TStringBuilder; begin sb := TStringBuilder.Create; sb.Append('Embarcadero'); sb.Append(' CodeGear'); sb.Append(' Delphi'); sb.Append(' 2009'); ShowM

delphi 属性 参数 新注释

delphi 属性 参数 新注释,在写代码的时候,可以自动看到属性.参数的的备注说明,太方便了. Tmyclass=class /// <summary> /// 姓名 /// </summary> name:string; /// <summary> /// 性别 /// </summary> sex:string; end; var aclass: Tmyclass; begin aclass.name; aclass.sex; 鼠标放上去的时候提示 写

[转]delphi的procedure of object

delphi的procedure of object(一个特殊的指针类型) 理论:     //适用于实现不是某一特定过程或函数          type                TNotifyEvent = procedure(Sender: TObject) of object;       首先:procedure 也是类型,可以理解为过程类型,定义过程的参数结构,而具体的实现可以动态赋值  onclick那样例子:      声明:  onclick= procedure(Sen

delphi的多线程编程

多线程的基本概念 win 98/nt/2000/xp 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用cpu 运行时间和资源,或者说,把cpu 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的. 多线程带来如下好处:(自己阅读) 1)避免瓶颈: 2)并行操作: 3)提高效率: 在多线程中,通过优先级管理,可以使重要的程序优先操作,提高了任务管理的灵活性. 另一方面,在多cpu 系统中,可以把不同的线程在不同的

delphi之self

在使用delphi的对象技术的时候,经常会看到一个词汇:self,它到底指的是什么呢?我们还要从对象与类的关系谈起.类是对将要创建的对象的性质的描述,是一种文档.这很重要:类只是一段描述性的文字,它并不会真去分配内存,无论在其中定义多少变量.如果打个比方,类就是图纸,而对象就是根据图纸盖的房子.对象是真正在内存中存在的东西,是运行“实体”.根据一份图纸可以盖多个相似的房子,同样道理,根据一个类,可以创建多个类似的对象,这个过程叫做“实例化”.在delphi中使用对象技术,要遵循以下的步骤:1.定