나는 델파이 XE2와 함께 WSDL 임포터를 사용했으며, 프록시 서버를 사용하려고하는 3 개의 주석이 달린 행을 제외하고 다음과 같은 루틴을 생성합니다.Delphi THTTPRio 인증 프록시 서버를 사용하는 방법
function GetIXYZService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IXYZService;
const
defWSDL = 'https://server/XYZService.svc?wsdl';
defURL = 'https://server/XYZService.svc';
defSvc = 'Company.XYZ.Services.XYZService';
defPrt = 'BasicHttpBinding_IXYZService';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
// RIO.HTTPWebNode.Proxy := 'server_ip:port';
// RIO.HTTPWebNode.Username := 'username';
// RIO.HTTPWebNode.Password := 'password';
Result := (RIO as ISSOService);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;
인증 프록시 서버를 통해 서비스에 액세스해야합니다. 위에 표시된 3 줄을 추가했는데 주석을 제거하면 연결할 수 없습니다. THTTPRio 상태에 대한 도움말 ...
프록시 서버를 사용하거나 서버가 인증을 요구하는 경우, 이 HTTPWebNode 속성의 값이 제공되는 THTTPReqResp 개체의 속성을 사용해야하는 경우 필요한 정보는 입니다.
이 내가했던,하지만 난 내 서비스를 사용하려고 할 때 ESOAPHTTPException가 가진 메시지가 발생을 ...
Unauthorized (407) - 'https://server/XYZService.svc'
난 후 프록시 설정을 말한다이 게시물을 우연히 발견했습니다 시도한 WSDLLocation, Service 및 Port를 성공으로 설정했습니다.
http://www.delphigroups.info/2/10/555621.html
또한 정의 USE_INDY 건물 있지 않다. 내 서비스는 SSL을 사용하므로 WinInet을 사용하고 있습니다.
이 접근법에 어떤 문제가 있는지 잘 모르겠으니 어떤 도움을 주시면 감사하겠습니다. 마이클