• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi之http通讯

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近写接口对接,需要建立通讯。现将delphi用到的通讯列出:

HTTP

 发送post请求

需要用到TIdHttp控件

 

procedure TFrmMain.Button5Click(Sender: TObject);
var
  HttpClient: TIdHttp;
  ParamList: TStringList;
begin
  HttpClient := TIdHttp.Create();
  ParamList := TStringList.Create;
  ParamList.Add('code=a123');
  ShowMessage(HttpClient.Post('http://127.0.0.1:9000/status', ParamList));
end;

路由如下:

POST    /status  CodeApplication.find

java代码如下:

public static void find(String code){
        //处理action逻辑。
        renderText(findSchedulestatus);
    }

 

 

现在写个复杂一点的,发送参数name=abc,然后接受服务端处理后返回的值。

delphi客户端:

procedure TFrmMain.PostDemo();
  var
    IdHttp : TIdHTTP;
    Url : string;//请求地址
    ResponseStream : TStringStream; //返回信息
    ResponseStr : string;

    RequestList : TStringList;     //请求信息
    RequestStream : TStringStream;
 begin
   //创建IDHTTP控件
   IdHttp := TIdHTTP.Create(nil);

   //TStringStream对象用于保存响应信息
   ResponseStream := TStringStream.Create('');

  // RequestStream := TStringStream.Create('');
   RequestList := TStringList.Create;
   try
     Url := 'http://127.0.0.1:9000/a';
     try
       //以列表的方式提交参数
       RequestList.Add('name=abc');
       IdHttp.Post(Url,RequestList,ResponseStream);
       //以流的方式提交参数
      // RequestStream.WriteString('name=love');
      // IdHttp.Post(Url,RequestStream,ResponseStream);
     except
       on e : Exception do
       begin
         ShowMessage(e.Message);
       end;
     end;
     //获取网页返回的信息
     ResponseStr := ResponseStream.DataString;
     //网页中的存在中文时,需要进行UTF8解码
     ResponseStr := UTF8Decode(ResponseStr);
     ShowMessage(ResponseStr);
   finally
     IdHttp.Free;
     RequestList.Free;
     RequestStream.Free;
     ResponseStream.Free;
   end;
 end;

java服务端:

import play.*;
import play.mvc.*;

import java.util.*;

import models.*;

public class Application extends Controller {
    
    private String name;

    public static void indexpost(String name){
        System.out.println("dosomething"+name);
        renderText("hello client!"+name);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

服务端routes文件:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                                       Application.index
POST    /a                                      Application.indexpost

# Ignore favicon requests
GET     /favicon.ico                            404

# Map static resources from the /app/public folder to the /public path
GET     /public/                                staticDir:public

# Catch all
*       /{controller}/{action}                  {controller}.{action}

 

 

HTTP

 发送GET请求

procedure TFrmMain.GetDemo();

  var
    IdHttp : TIdHTTP;
    Url : string;//请求地址
    ResponseStream : TStringStream; //返回信息
    ResponseStr : string;
  begin
    //创建IDHTTP控件
    IdHttp := TIdHTTP.Create(nil);
   //TStringStream对象用于保存响应信息
  ResponseStream := TStringStream.Create('');
  try
     //请求地址
     Url := 'http://127.0.0.1:9000';
     try
       IdHttp.Get(Url,ResponseStream);
     except
       on e : Exception do
       begin
         ShowMessage(e.Message);
       end;
     end;
     //获取网页返回的信息
     ResponseStr := ResponseStream.DataString;
     //网页中的存在中文时,需要进行UTF8解码
     ResponseStr := UTF8Decode(ResponseStr);
   finally
     IdHttp.Free;
     ResponseStream.Free;
   end;
 end;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
CEF3中js调用delphi内部方法CEF3中js调用delphi内部方法发布时间:2022-07-18
下一篇:
咏南新CS插件开发框架支持DELPHI7发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap