I'm recompiling my app using MT 5.2.13, and I now get an exception calling
HttpWebRequest.GetRequestStream(). I'm using the exact same call in the
published version of the app and it works fine, so I don't think it's a
change on the server side.
It looks like there have been a few changes in the HTTP/Web stack in the
last few months since I last compiled - does this look related to any of
those changes..?
System.Net.WebException: Error getting response stream (Write: The
authentication or decryption has failed.): SendFailure
---> System.IO.IOException: The authentication or decryption has failed.
---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received
from server. Error code: 0x5
at
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates
(Mono.Security.X509.X509CertificateCollection certificates) [0x000a1] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:218
at
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1
() [0x00054] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:105
at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process ()
[0x00037] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:105
at
Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage
(Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00039] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ClientRecordProtocol.cs:81
at
Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback
(IAsyncResult asyncResult) [0x00127] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:397
--- End of inner exception stack trace ---
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback
(IAsyncResult asyncResult) [0x0002a] in
/Developer/MonoTouch/Source/mono/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslStreamBase.cs:100
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult
asyncResult) [0x00043] in
/Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:738
at System.Net.HttpWebRequest.GetRequestStream () [0x00057] in
/Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:756
Here's my code:
var data = String.Format("api_type=json&user={0}&passwd={1}", username,
password);
var uri = new Uri("https://ssl.reddit.com/api/login/" + username);
var webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.CookieContainer = new CookieContainer();
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = ASCIIEncoding.ASCII.GetByteCount(data);
using (var postStream = webRequest.GetRequestStream()) // Exception here
{
}
Thanks
Kris
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch