के कॉल के दौरान संवाद (मूल प्रमाणीकरण संकेत) को रोकने के लिए कैसे करें एक डेल्फी प्रोग्राम (सेवा के रूप में चल रहा है) में मुझे कुछ वेबसाइसेस कॉल करने की आवश्यकता है।
यदि मूल प्रमाणीकरण की आवश्यकता नहीं है तो कॉल ठीक काम करता है। कॉल भी ठीक काम करता है, तो मूल प्रमाणीकरण requerired जाता है और उपयोगकर्ता नाम/पासवर्ड प्रदान की जाती है (BeforePost में) का उपयोग:वेबसाइट सेवा
InternetSetOption(Data, INTERNET_OPTION_USERNAME,...
InternetSetOption(Data, INTERNET_OPTION_PASSWORD,...
लेकिन अगर बुनियादी प्रमाणीकरण Requeried, और उपयोगकर्ता नाम है/पासवर्ड प्रदान नहीं की है, कार्यक्रम वायुसेना शीघ्र लाता है उपयोगकर्ता नाम/पासवर्ड के लिए (एक servcice में नो-गो है)।
तो मैं कैसे संकेत दे सकता हूं कि मुझे कोई संकेत नहीं चाहिए, बल्कि इसके बजाय एक त्रुटि?
समस्या यह है कि, जैसा कि मैं इसे कर सकता हूं, SOAPHTTPTrans फ़ंक्शन THTTPReqResp.Send (const ASrc: TStream): Integer; (लाइन 762 (इंटरनेट एरर डीएलजी मैं दूसरी विधि के लिए दूसरी कॉल))।
EDIT1:
अगर मैं (SOAPHTTPTRANS में) भेजने विधि की शुरुआत में झंडे को बदलने INTERNET_FLAG_NO_AUTH शामिल करने के लिए, यह काम करता है के रूप में मैं चाहता था।
लेकिन मैं SAOPHTTPTrans (यदि संभव हो) को बदले बिना ऐसा कैसे करूं?
EDIT2:
ws := THTTPRIO.Create(Self);
ws.URL := 'http://excample.com/ws.asmx';
ws.HTTPWebNode.InvokeOptions := [soIgnoreInvalidCerts];
ws.HTTPWebNode.OnBeforePost := WebServiceCallBeforePost;
AvailabilityWebservice := (ws as AvailabilityServiceSoap);
sTemp := AvailabilityWebservice.GetVersion;
कहाँ AvailabilityServiceSoap डबल्यूएसडीएल आयातक उपयोग करते हुए उत्पन्न इंटरफेस है।
प्रकार से हैडर है यदि आप डेस्कटॉप सहभागिता के बिना आपकी सेवा कार्य नहीं किया जा सकता सकता है? यह वर्तमान व्यवहार को एक त्रुटि में बदल सकता है। –
आप THTTPReqResp ऑब्जेक्ट का उपयोग कैसे कर रहे हैं? टीएसओएपी कनेक्शन के हिस्से के रूप में? –
जेरोन: मैंने अभी तक कोशिश नहीं की है, लेकिन समस्या यह है कि प्रोसेस स्टॉक इनपुट के लिए इंतजार कर रहा है, इसलिए यह लटकने वाला लगता है। – BennyBechDk