• idHttp 中GET POST应用


    转:https://www.cnblogs.com/limingliyu/archive/2016/07

    使用IDHTTP,下面是一些关于 GET、POST 请求基本使用方法的代码

    一、GET 请求

    复制代码
     1 procedure GetDemo;
     2 var
     3   IdHttp : TIdHTTP;
     4   Url : string;//请求地址
     5   ResponseStream : TStringStream; //返回信息
     6   ResponseStr : string;
     7 begin
     8   //创建IDHTTP控件
     9   IdHttp := TIdHTTP.Create(nil);
    10   //TStringStream对象用于保存响应信息
    11   ResponseStream := TStringStream.Create('');
    12   try
    13     //请求地址
    14     Url := 'http://dict.youdao.com/';
    15     try
    16       IdHttp.Get(Url,ResponseStream);
    17     except
    18       on e : Exception do
    19       begin
    20         ShowMessage(e.Message);
    21       end;
    22     end;
    23     //获取网页返回的信息
    24     ResponseStr := ResponseStream.DataString;
    25     //网页中的存在中文时,需要进行UTF8解码
    26     ResponseStr := UTF8Decode(ResponseStr);
    27   finally
    28     IdHttp.Free;
    29     ResponseStream.Free;
    30   end;   
    31 end;
    复制代码

    如果Get需要添加请求参数,则直接在地址后添加,各参数间用&连接

    如:http://dict.youdao.com?param1=1&param2=2

    二、Post 请求

    复制代码
     1 procedure PostDemo;
     2 var
     3   IdHttp : TIdHTTP;
     4   Url : string;//请求地址
     5   ResponseStream : TStringStream; //返回信息
     6   ResponseStr : string;
     7 
     8   RequestList : TStringList;     //请求信息
     9   RequestStream : TStringStream;
    10 begin
    11   //创建IDHTTP控件
    12   IdHttp := TIdHTTP.Create(nil);
    13   //TStringStream对象用于保存响应信息
    14   ResponseStream := TStringStream.Create('');
    15 
    16   RequestStream := TStringStream.Create('');
    17   RequestList := TStringList.Create;
    18   try
    19     Url := 'http://f.youdao.com/?path=fanyi&vendor=fanyiinput';
    20     try
    21       //以列表的方式提交参数
    22       RequestList.Add('text=love');
    23       IdHttp.Post(Url,RequestList,ResponseStream);
    24 
    25       //以流的方式提交参数
    26       RequestStream.WriteString('text=love');
    27       IdHttp.Post(Url,RequestStream,ResponseStream);
    28     except
    29       on e : Exception do
    30       begin
    31         ShowMessage(e.Message);
    32       end;
    33     end;
    34     //获取网页返回的信息
    35     ResponseStr := ResponseStream.DataString;
    36     //网页中的存在中文时,需要进行UTF8解码
    37     ResponseStr := UTF8Decode(ResponseStr);
    38   finally
    39     IdHttp.Free;
    40     RequestList.Free;
    41     RequestStream.Free;
    42     ResponseStream.Free;
    43   end;
    44 end;
    复制代码

    Post请求在网页中多使用List形式提交参数。

    不过在一些API中规定了POST的请求格式为 JSON 格式或 XML,这是需要注意发起请求前需要先设置 ContentType 属性,使用Stream方式提交

    已上面代码为例:

    提交 JSON 格式:IdHttp.Request.ContentType :='application/json';

    提交 XML 格式: IdHttp.Request.ContentType :='text/xml';

    如未按要求格式提交,一般会返回 HTTP 1.1 / 415

    /03/5638966.html

  • 相关阅读:
    Android-使用AIDL挂断电话
    新变化---转战新博客
    Spring Cloud Config 分布式配置中心【Finchley 版】
    Spring Boot2.0 整合 Kafka
    Spring Cloud 分布式链路跟踪 Sleuth + Zipkin + Elasticsearch【Finchley 版】
    Spring MVC 5 + Thymeleaf 基于Java配置和注解配置
    【机器学习】使用gensim 的 doc2vec 实现文本相似度检测
    【机器学习】SKlearn + XGBoost 预测 Titanic 乘客幸存
    【深度学习】keras + tensorflow 实现猫和狗图像分类
    iScroll.js 向上滑动异步加载数据回弹问题
  • 原文地址:https://www.cnblogs.com/maweiwei/p/7865445.html
Copyright © 2020-2023  润新知