user
IdGlobal,
IdHTTP,
IdMultipartFormData,
IdSSLOpenSSL,
IdIOHandler,
IdIOHandlerSocket,
IdIOHandlerStack,
IdSSL,
function TDMAPI.QianMingId(sKey:string;var sResult:string):string;
var
cHttp: TIdHTTP;
SSLIO: TIdSSLIOHandlerSocketOpenSSL;
vData: TIdMultiPartFormDataStream;
vRsp: TStringStream;
stemp:string;
begin
Result := '';
try
vRsp := TStringStream.Create('', TEncoding.UTF8);
cHttp := TIdHttp.Create(nil);
cHttp.ReadTimeout := 3000;
vData := TIdMultiPartFormDataStream.Create;
SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
cHttp.AllowCookies := True;
cHttp.HandleRedirects := True;
SSLIO.SSLOptions.Method:=sslvSSLv23;
SSLIO.SSLOptions.Mode := sslmClient;
cHttp.IOHandler := SSLIO;
cHttp.HTTPOptions := cHttp.HTTPOptions + [hoKeepOrigProtocol];
cHttp.ProtocolVersion := pv1_1;
vData.AddFormField('key',sKey);
cHttp.Post(apiUrl_qm, vData, vRsp);
Result := vRsp.DataString;
sResult:=vData.Boundary;
finally
cHttp.Free;
vRsp.Free;
vData.Free;
SSLIO.Free;
end;
except
on E: Exception do
begin
ShowMessage('签名发生错:'+E.Message);
end;
end;
end;