title: How can I Authenticate to this HTTPS SOAP Service?
body: <p>I am trying to create a little tool that will monitor how much bandwidth I have used and how much I have remaining from my ISP. They have a SOAP service which I must authenticate my UserName and Password and validate the client then I will get 2 GUIDS that must be passed into the function that will return the usage statistics from an array. These are then cached for 1 hour and I must authenticate again.</p>
  
  <p>I have used the WSDL Importer from within Delphi 2010 and it has generated me a Unit. (I am not really sure that I should post this as it is quite large)?</p>
  
  <p>I am trying to authenticate the first part with my Username and Password with the code below:</p>
  
  <pre><code>procedure TForm1.btnAuthClick(Sender: TObject);
  var
    fGUID: string;
  begin
    HTTPRIO1.URL := 'https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL';
    try
      fGUID := (HTTPRIO1 as ServiceEngineSoap).Authenticate(edtUserName.Text,edtPassword.Text);
      Label1.Caption := fGUID;
    except
      on E: Exception do
      Memo1.Lines.Text := E.Message;
    end;
  end;
  </code></pre>
  
  <p>The above code always returns the Error below:</p>
  
  <blockquote>
    <p>Header <a href="http://schemas.xmlsoap.org/ws/2004/08/addressing:Action" rel="noreferrer">http://schemas.xmlsoap.org/ws/2004/08/addressing:Action</a> for ultimate recipient is required but not present in the message.</p>
  </blockquote>
  
  <p><br />I have tried using the WSDLLocation instead with the Service and the Port:</p>
  
  <pre><code>procedure TForm1.btnAuthClick(Sender: TObject);
  var
    fGUID: string;
  begin
    HTTPRIO1.WSDLLocation := 'https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL';
    HTTPRIO1.Service := 'ServiceEngine';
    HTTPRIO1.Port := 'ServiceEngineSoap';
    try
      fGUID := (HTTPRIO1 as ServiceEngineSoap).Authenticate(edtUserName.Text,edtPassword.Text);
      Label1.Caption := fGUID;
    except
      on E: Exception do
      Memo1.Lines.Text := E.Message;
    end;
  end; 
  </code></pre>
  
  <p>This will always generate the Error below:</p>
  
  <blockquote>
    <p>Unable to retrieve the URL endpoint for Service/Port 'ServiceEngine'/'ServiceEngineSoap' from WSDL 'https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL'</p>
  </blockquote>
  
  <p><br />What am I doing wrong here? If I should actually send a Header then how would I do this to authenticate myself to the service?</p>