Я использую последнюю версию Monodroid, 4.04, и пытаюсь подключиться к устройству с помощью HttpWebRequest. Проблема, с которой я сталкиваюсь, заключается в том, что GetResponse вызывает исключение (см. Ниже).
В отладчике, когда я устанавливаю точку останова, я вижу, что webRequest.HaveResponse == true, но в исключении ответ нулевой.
Почему я не могу получить ответ, когда он сообщает, что у него есть ответ?
Код, который я использую:
string responseFromServer;
ServicePointManager.CertificatePolicy = new TestCertificatePolicy();
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://192.168.1.1/login.cgi");
webRequest.KeepAlive = true;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
webRequest.ReadWriteTimeout = 10000;
// Get the request stream.
Stream dataStreamIn = webRequest.GetRequestStream();
dataStreamIn.Write(byteArray, 0, byteArray.Length);
dataStreamIn.Close();
try
{
WebResponse response = webRequest.GetResponse(); <-- throws webexception
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
Console.WriteLine("Done");
}
catch (WebException we)
{
Console.WriteLine(we);
throw;
}
Вот исключение:
System.Net.WebException: Error getting response stream (ReadDone2): ReceiveFailure ---> System.Exception: at System.Net.WebConnection.ReadDone(IAsyncResult result)
at System.Net.WebConnection.HandleError (WebExceptionStatus st, System.Exception e, System.String where) [0x0003a] in /home/jon/Development/xamarin/mono/mcs/class/System/System.Net/WebConnection.cs:399
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x0005e] in /home/jon/Development/xamarin/mono/mcs/class/System/System.Net/HttpWebRequest.cs:828
at System.Net.HttpWebRequest.GetResponse () [0x0000e] in /home/jon/Development/xamarin/mono/mcs/class/System/System.Net/HttpWebRequest.cs:836
at MonoDroidTest.Activity1.GetStreamPage (System.String url) [0x000c2] in C:\Users\dave\Documents\Visual Studio 2010\Projects\MonoDroidTest\MonoDroidTest\Activity1.cs:277