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>
手順上、D2005 では 1 回目で Unauthorized の応答が返されることがあり、2 回目は問題なく接続できるため、2 回接続を試みています。D2010 では、常に Unauthorized の回答が返されます。
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;
ありがとうサム