क्या किसी ने बिंग मैप वेब सर्विसेज (पूर्व में वर्चुअल अर्थ वेब सर्विसेज) डेल्फी के साथ काम कर लिया है?डेल्फी के साथ बिंग मैप वेब सेवाओं का उपयोग करने वाला कोई भी व्यक्ति?
अब तक मेरे अनुभवों (डेल्फी और विजुअल स्टूडियो सी # का उपयोग करके) के आधार पर, मैं इसे छोड़ने और मैपपॉइंट वेब सेवा के साथ जाने के लिए तैयार हूं जब तक कि बिंग मैप्स वेब सर्विसेज के भविष्य के संस्करण बाहर नहीं आते। हालांकि, मैंने सोचा कि मैं यहां एक अंतिम उपाय के रूप में एक प्रश्न पोस्ट करूंगा ...
मैंने टोकन सेवा और जियोकोड सेवा डब्ल्यूएसडीएल दस्तावेज आयात किए।
मैं सफलतापूर्वक टोकन सेवा से टोकन प्राप्त करने में सक्षम था, लेकिन Geocode सेवा को बिल्कुल काम करने में असमर्थ रहा है। यह हमेशा निम्न त्रुटि संदेश देता है: एंडपॉइंट डिस्प्लेचर पर कॉन्ट्रैक्टफ़िल्टर विसंगति के कारण, एक्शन '' के साथ संदेश रिसीवर पर संसाधित नहीं किया जा सकता है। यह प्रेषक और रिसीवर के बीच एक अनुबंध विसंगति (प्रेषक और रिसीवर के बीच बेमेल कार्रवाई) या बाध्यकारी/सुरक्षा विसंगति के कारण हो सकता है। जांचें कि प्रेषक और रिसीवर के पास एक ही अनुबंध है और एक ही बाध्यकारी है (सुरक्षा आवश्यकताओं सहित, उदाहरण के लिए संदेश, परिवहन, कोई नहीं)।
मैंने देखा डेल्फी SOAPAction हेडर के लिए एक मूल्य को निर्दिष्ट नहीं किया गया था, तो मैं "http://staging.dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geocode" निर्दिष्ट करने की कोशिश की और बदले में निम्न त्रुटि संदेश मिल गया: एक आंतरिक त्रुटि के कारण
सर्वर अनुरोध को संसाधित करने में असमर्थ था । त्रुटि के बारे में अधिक जानकारी के लिए, या तो क्लाइंट को अपवाद जानकारी भेजने के लिए, या Microsoft .NET Framework के अनुसार ट्रेसिंग चालू करने के लिए सर्वर पर IncludeExceptionDetailInFaults (या तो ServiceBehaviorAttribute से या < सेवा Debug > कॉन्फ़िगरेशन व्यवहार से) चालू करें। 3.0 एसडीके दस्तावेज और सर्वर ट्रेस लॉग का निरीक्षण करें।
नीचे मेरा डेल्फी कोड और कच्चा एक्सएमएल भेजा जा रहा है, तो कच्चे एक्सएमएल को माइक्रोसॉफ्ट के नमूना सी # कोड से इसी तरह की कॉल द्वारा भेजा जा रहा है। एक्सएमएल में कई अंतर हैं, लेकिन मुझे यकीन नहीं है कि क्या अंतर महत्वपूर्ण है। में सी # जियोकोड एक्सएमएल उत्पादित: वहाँ किसी भी बात यह है कि NS2 से मेल खाती है होना करने के लिए प्रकट नहीं होता है -
var
Service: IGeocodeService;
Request: Geocode;
Response: GeocodeResponse3;
ResponseIndex: Integer;
Token: WideString;
Filters: ArrayOfFilterBase;
begin
Token := GetToken;
Service := GetIGeocodeService;
Request := Geocode.Create;
try
Request.request := GeocodeRequest.Create;
Request.request.Credentials := GeocodeService.Credentials.Create; // Freed by GeocodeRequest class
Request.request.Credentials.Token := Token;
Request.request.Query := AddressEdit.Text;
Request.request.Options := GeocodeOptions.Create;
SetLength(Filters, 1);
Filters[ 0 ] := ConfidenceFilter.Create;
ConfidenceFilter(Filters[ 0 ]).MinimumConfidence := GeocodeService.High_;
Request.request.Options.Filters := Filters;
Response := Service.Geocode(Request);
try
for ResponseIndex := Low(Response.GeocodeResult.Results) to High(Response.GeocodeResult.Results) do
begin
OutputMemo.Lines.Add(Response.GeocodeResult.Results[ ResponseIndex ].DisplayName);
end;
finally
Response.Free;
end;
finally
Request.Free;
end;
end;
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:NS2="http://dev.virtualearth.net/webservices/v1/geocode/contracts" xmlns:NS3="http://dev.virtualearth.net/webservices/v1/geocode" xmlns:NS4="http://dev.virtualearth.net/webservices/v1/common">
<NS1:Geocode xmlns:NS1="http://dev.virtualearth.net/webservices/v1/geocode/contracts">
<parameters href="#1"/>
</NS1:Geocode>
<NS2:Geocode id="1" xsi:type="NS2:Geocode">
<request href="#2"/>
</NS2:Geocode>
<NS3:request id="2" xsi:type="NS3:GeocodeRequest">
<Credentials href="#3"/>
<Options href="#4"/>
<Query xsi:type="xsd:string">Some Address</Query>
</NS3:request>
<NS4:Credentials id="3" xsi:type="NS4:Credentials">
<Token xsi:type="xsd:string">cbYkKgNlrsGnZbn3HRP7Xp5LJMv3RR_5qECwgB792COfY3EPmviaDpZ4mmD3fDP1Osc6fWUkTptog7bfgM73bA2</Token>
</NS4:Credentials>
<NS3:Options id="4" xsi:type="NS3:GeocodeOptions">
<Filters xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="NS3:FilterBase[1]">
<item href="#5"/>
</Filters>
</NS3:Options>
<NS3:ConfidenceFilter id="5" xsi:type="NS3:ConfidenceFilter">
<MinimumConfidence xsi:type="NS4:Confidence">High</MinimumConfidence>
</NS3:ConfidenceFilter>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<Geocode xmlns="http://dev.virtualearth.net/webservices/v1/geocode/contracts">
<request xmlns:a="http://dev.virtualearth.net/webservices/v1/geocode" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Credentials xmlns="http://dev.virtualearth.net/webservices/v1/common">
<ApplicationId i:nil="true"/>
<Token>pezCDpJoxdCG63NQdJUGkTrYYalnuSQDwuIC9FvheFAd9MIPO75qX9n7il0dx3eTEHlN2877PzN1_6YbQDL5tg2</Token>
</Credentials>
<Culture i:nil="true" xmlns="http://dev.virtualearth.net/webservices/v1/common"/>
<ExecutionOptions i:nil="true" xmlns="http://dev.virtualearth.net/webservices/v1/common"/>
<UserProfile i:nil="true" xmlns="http://dev.virtualearth.net/webservices/v1/common"/>
<a:Address i:nil="true" xmlns:b="http://dev.virtualearth.net/webservices/v1/common"/>
<a:Options>
<a:Count i:nil="true"/>
<a:Filters>
<a:FilterBase i:type="a:ConfidenceFilter">
<a:MinimumConfidence>High</a:MinimumConfidence>
</a:FilterBase>
</a:Filters>
</a:Options>
<a:Query>1 Microsoft Way, Redmond, WA</a:Query>
</request>
</Geocode>
</s:Body>
</s:Envelope>
धन्यवाद, मैं कुछ इसी तरह की कोशिश की थी इससे पहले, लेकिन मैं सिर्फ इसे फिर से करने की कोशिश की कोई भाग्य के साथ। –