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;