का उपयोग कर मैं सीख रहा हूं कि सी # के साथ xamarin का उपयोग कैसे करें, और मुझे एक बाहरी एपीआई में वेब अनुरोध करने के लिए एंड्रॉइड ऐप मिला है और मुझे निम्न त्रुटि मिल रही है;Xamarin में WebException, HttpClient
System.Net.Http.HttpRequestException: An error occurred while sending the
request ---> System.Net.WebException: Error: SecureChannelFailure (The
authentication or decryption has failed.) ---> System.IO.IOException: The
authentication or decryption has failed. ---> System.IO.IOException: The
authentication or decryption has failed. --->
Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.
मेरा कोड निम्नानुसार है;
public async Task<List<T>> GetList<T>(string url)
{
HttpClient client = new HttpClient();
var response = await client.GetAsync(new Uri(url));
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<List<T>>(content);
}
एंड्रॉइड में मेनक्लास कोर क्लास को कॉल करता है, जो इस सेवा वर्ग को कॉल करता है।
एचटीपी क्लाइंट अनुरोध करता है जब एपीआई HTTPS का उपयोग नहीं करता है, लेकिन जब भी मैं एक एपीआई का उपयोग करता हूं जिसमें HTTPS सक्षम है तो यह त्रुटि फेंकता है।
मैं कोड स्टोर करने के लिए पोर्टेबल क्लास लाइब्रेरी का भी उपयोग कर रहा हूं, इसलिए वेब अनुरोधों के लिए HttpWebRequest का उपयोग करना संभव नहीं है।
मैंने भी कोशिश की है;
ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
और;
System.Security.Cryptography.AesCryptoServiceProvider b = new System.Security.Cryptography.AesCryptoServiceProvider();
मेरे आवेदन ऑनक्रेट क्लास (एंड्रॉइड) में।
मैंने एसएसएल/टीएलएस कार्यान्वयन को 1.1 में बदलने के साथ एंड्रॉइड क्लाइंटहैंडलर को एचटीपी क्लाइंट कार्यान्वयन भी बदल दिया है। एक एमुलेटर और डिवाइस पर इसका प्रयास करने के साथ-साथ।
क्या किसी के पास कोई सलाह है?
क्या आप इसे हल करने में सक्षम थे? मैं एक ही मुद्दे में भाग गया और एंड्रॉइड प्रोजेक्ट को संशोधित करने के लिए मेरे लिए काम किया। एंड्रॉइड विकल्प> उन्नत के तहत, मैंने एंड्रॉइड और एसएसएल/टीएलएस कार्यान्वयन को एंड्रॉइड और एसएसएल/टीएलएस कार्यान्वयन को मूल टीएलएस 1.2+ – nthpixel
पर सेट किया है, मुझे त्रुटि से ऊपर भी मिल रहा है @ यानबिन हू अच्छा समाधान और HTTP क्लाइंट कार्यान्वयन को डिफॉल्ट से एंड्रॉइड मूल में बदलने के अलावा एसएसएल/टीएलएस कार्यान्वयन को डिफ़ॉल्ट से - मूल टीएलएस 1.2+ में बदल दिया - फिर यह मेरे लिए काम किया। –