我正在从Delphi 2005升级到Delphi 2010.我遇到了这个问题:以下程序在D2005上运行良好但在D2010上我总是得到结果:
<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>
<BODY><H1>401 Unauthorized</H1>
Your client does not have permission to get URL /axis-cgi/date.cgi from this server.
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
在程序上,我尝试连接两次因为在D2005,有时我在第一次尝试时得到了一个未经授权的答案,然后我可以第二次连接没有问题.使用D2010,我总是得到未经授权的回答.
Url ='http:// user:pass@xxx.xxx.xxx.xxx/axis-cgi/date.cgi?action = get'
function TViewCameraForm.HttpGet(idHTTP : TidHTTP; Url : AnsiString): AnsiString;
Var
Res : AnsiString;
Begin
idHTTP1.Disconnect;
try
Res := idHTTP1.Get(Url);
If Pos('Unauthorized', Res) > 0 Then
Res := idHTTP1.Get(Url);
Result := Res;
except
on E: EIdHTTPProtocolException do begin
Result := E.ErrorMessage
end;
on E: Exception do begin
Result := E.message;
end;
end;
End;
Run Code Online (Sandbox Code Playgroud)
谢谢山姆
我正在将我的程序从Delphi 2005升级到Delphi 2010.我遇到了RSA功能问题
以下程序在D2005下运行良好,但在D2010中,结果始终为零.我已经尝试使用新版本的libeay32.dll
function ReadPrivateKey(AFileName: TFileName): pEVP_PKEY;
var
keyfile: pBIO;
a : pEVP_PKEY;
begin
a := nil;
keyfile := BIO_new(BIO_s_file());
BIO_read_filename(keyfile, PAnsiChar(AFilename));
result := PEM_read_bio_PrivateKey(keyfile, a, nil, nil);
if result = nil then
begin
raise Exception.Create('Não foi possível ler a chave privada.');
end;
BIO_free(keyfile);
end;
Run Code Online (Sandbox Code Playgroud)
有人有这个问题吗?谢谢山姆