HTTP服务的应用

发布于:2024-07-29 ⋅ 阅读:(96) ⋅ 点赞:(0)

1、编辑json请求参数;

2、把json发送到服务url,接收服务的返回参数;

3、解析返回参数。

procedure TfrmCustomQuery.btnFullUpdateClick(Sender: TObject);
var
  frm: TfrmInputQueryConditionEX;
  b_OK: Boolean;
  sBeginDate, sEndDate, sJSON, sResult, Success: string;
  HttpReq: IXMLHTTPRequest;
  vJson: ISuperObject;
begin
  inherited;
  if Trim(g_sEmbryoUpdateURL) = '' then
  begin
    MyCommon.ShowWarn('胚胎数据更新URL地址未填写!');
    Exit;
  end;
  try
    frm := TfrmInputQueryConditionEX.Create(nil);
    frm.ShowModal;
    b_OK := frm.Gb_OK;
    if b_OK then
    begin
      sBeginDate := FormatDateTime('yyyy-MM-dd 00:00:00', frm.DtpBegin.DateTime);
      sEndDate := FormatDateTime('yyyy-MM-dd 23:59:59', frm.dtpEnd.DateTime);

      sJSON := '{'
      +' "startDate": "'+sBeginDate+'",'
      +' "endDate": "'+sEndDate+'",'
      +' "type": "1"'
      +' }';

      HttpReq := CoXMLHTTPRequest.Create;
      HttpReq.open('Post', g_sEmbryoUpdateURL, False, EmptyParam, EmptyParam);
      HttpReq.setRequestHeader('Accept', 'application/json');
      HttpReq.setRequestHeader('Content-Type', 'application/json');
      try
        MyCommon.WriteLog('请求参数:' + sJSON);
        HttpReq.Send(sJSON);
        sResult := (HttpReq.responseText);
        MyCommon.WriteLog('返回参数:' + sResult);
      except
        on Ex: Exception do
        begin
          MyCommon.ShowWarn(Ex.Message + ' 请联系接口工程师处理!');
          Exit;
        end;
      end;

      vJson := SO(sResult);
      Success := vJson['code'].AsString;
      if Success = '200' then
      begin
        Mycommon.ShowWarn('数据正在更新,请十分钟后查询!');
      end else
      begin
        MyCommon.ShowWarn(vJson['msg'].AsString);
        Exit;
      end;
    end;
  finally
    if frm <> nil then
    begin
      frm.Free;
      frm := nil;
    end;
  end;
end;


网站公告

今日签到

点亮在社区的每一天
去签到