小编Sam*_*uel的帖子

使用Indy http(idHTTP1.Get)从Delphi 2005升级到2010后授权问题

我正在从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 delphi-2010 indy10 idhttp

3
推荐指数
1
解决办法
998
查看次数

从Delphi 2005升级到2010 libeay32.dll

我正在将我的程序从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)

有人有这个问题吗?谢谢山姆

delphi unicode rsa delphi-2010

2
推荐指数
1
解决办法
1037
查看次数

标签 统计

delphi ×2

delphi-2010 ×2

idhttp ×1

indy10 ×1

rsa ×1

unicode ×1