मेरे पास एक प्रोग्राम है जो डेल्फी 200 9 पर लिखा गया था। यह एसएसएल पर HTTP पर SOAP का उपयोग करता है। तो यह एसओएपी अनुरोध है जो HTTP अनुरोध को ट्रिगर करता है, जिसे एक डीएलएल के माध्यम से माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर द्वारा नियंत्रित किया जाता है। एमएसआईई तब एक पॉपअप करेगा जो लॉगिन के लिए पूछता है।डेल्फी एक्सई + एसओएपी + एसएसएल
लेकिन अब मुझे इसे डेल्फी एक्सई में संकलित करने की आवश्यकता है और मुझे कोई समस्या है। कार्यक्रम एसएसएल में लॉगिन नहीं करना चाहता है। बिल्कुल कोई पॉपअप नहीं। तो, ऐसा लगता है कि ट्रिगर काम नहीं करना चाहता है।
त्रुटि इस कोड की दूसरी पंक्ति में प्रकट होता है:
mantis:=GetMantisConnectPortType(false, mantisurl);
mi := mantis.mc_issue_get(username,password,MantisIssue);
त्रुटि
Project IssueReporter.exe raised exception class ESOAPHTTPException with message 'Authorization Required (401) - 'https://***/mantis/api/soap/mantisconnect.php''.
कनेक्शन प्रक्रिया के लिस्टिंग
function GetMantisConnectPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): MantisConnectPortType;
const
defWSDL = 'https://***/mantis/api/soap/mantisconnect.php?wsdl';
defURL = 'https://***/mantis/api/soap/mantisconnect.php';
defSvc = 'MantisConnect';
defPrt = 'MantisConnectPort';
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
Result := (RIO as MantisConnectPortType);
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;
mc_issue_get का एक हिस्सा है है
MantisConnectPortType = interface(IInvokable)
एक घोषणा है:
function mc_issue_get(const username: string; const password: string; const issue_id: Int64): IssueData; stdcall;
ब्राउज़र में और 2009 में संकलित वर्ष exe में सभी ठीक काम करता है। इस समस्या को हल करने के लिए कृपया मदद करें। टारस, कीव
अपने प्रमाणपत्रों की जांच करें जहां वे होना चाहिए ... और हमें वह कोड दिखाएं जहां ग्राहक प्रमाण पत्र उठाता है। – Sam