网站策划内容有哪些,东莞高风险地区名单最新,西安市政道桥建设公司网站,app推广兼职这篇博客展示了如何使用Delphi创建一个简单的HTTP服务器#xff0c;并处理GET和POST请求。服务器监听6600端口#xff0c;响应JSON格式的数据。客户端通过IdHttp组件进行GET和POST请求#xff0c;获取并显示服务器响应的内容。 http服务器测试代码
procedure TForm1.FormSh…这篇博客展示了如何使用Delphi创建一个简单的HTTP服务器并处理GET和POST请求。服务器监听6600端口响应JSON格式的数据。客户端通过IdHttp组件进行GET和POST请求获取并显示服务器响应的内容。 http服务器测试代码
procedure TForm1.FormShow(Sender: TObject); begin IdHTTPServer1.Bindings.Clear; IdHTTPServer1.DefaultPort: 6600; IdHTTPServer1.Bindings.Add.IP : 127.0.0.1; //启动服务器 IdHTTPServer1.Active : True; end; procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var I: Integer; begin if SameText(ARequestInfo.Command, get) then begin if ARequestInfo.Document /api_v1/get_token then begin Memo1.Lines.Add(-------------); Memo1.Lines.Add(ARequestInfo.Params.Count.ToString); Memo1.Lines.Add(-------------); for I : 0 to ARequestInfo.Params.Count - 1 do begin Memo1.Lines.Add(ARequestInfo.Params.ValueFromIndex[I]); end; Memo1.Lines.Add(-------------); AResponseInfo.CharSet : UTF-8; AResponseInfo.ContentType : application/json; AResponseInfo.ContentText : {a:001, b:002, c:[ a:003, b:004]}; end; end; if SameText(ARequestInfo.Command, post) then begin if ARequestInfo.Document /api_v2/get_token then begin Memo1.Lines.Add(-------------); Memo1.Lines.Add(ARequestInfo.Params.Count.ToString); Memo1.Lines.Add(-------------); for I : 0 to ARequestInfo.Params.Count - 1 do begin Memo1.Lines.Add(ARequestInfo.Params.ValueFromIndex[I]); end; Memo1.Lines.Add(-------------); AResponseInfo.CharSet : UTF-8; AResponseInfo.ContentType : application/json; AResponseInfo.ContentText : {a:0011, b:0022, c:[ a:0033, b:0044]}; end; end; end; 客户端DEMO
客户端DEMO
procedure TForm2.Button1Click(Sender: TObject); var ttt: String; begin ttt : IdHttp1.Get(http://127.0.0.1:6600/api_v1/get_token?a1b2); memo1.Text : ttt; end; procedure TForm2.Button2Click(Sender: TObject); var Sendmessage:TStringList;//发送内容 Receivemessage:TStringStream;//返回内容 ttt: String; begin Sendmessage:TStringList.Create; Receivemessage:TStringStream.Create(); Sendmessage.Add(ID1001);//必须要有Add(字段值)这种模式否则传递过去服务端接收的是空值 Sendmessage.Add(namejack);//还可以用Param.Add(headmiddleEdit1.text)的方式连接成有效的数组 Sendmessage.Add(sexmale); IdHTTP1.ReadTimeout:10000;//设置十秒后超时 IdHttp1.Post(http://127.0.0.1:6600/api_v2/get_token,Sendmessage, Receivemessage); memo1.Text:Receivemessage.DataString;//显示返回的值 Sendmessage.Free; Receivemessage.Free; end;