Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.144.32] |
|
Сообщ.
#1
,
|
|
|
Посылаю запрос на сервер по POST запросом и принимаю результат работы примерно таким вот образом (пример где то с Интернета слил)
using System; using System.Net; using System.Web; using System.Collections; using System.Text; using System.IO; using System.Data; namespace http3 { class Program { static void Main(string[] args) { WebResponse result = null; WebRequest req = null; Stream newStream = null; Stream ReceiveStream = null; StreamReader sr = null; try { req = WebRequest.Create("http://lcms.ru/sys_lcms/"); req.Method = "POST"; req.Timeout = 120000; req.Credentials = new NetworkCredential("admin", "qweqweqwe"); req.ContentType = "application/x-www-form-urlencoded"; byte[] SomeBytes = null; SomeBytes = Encoding.GetEncoding(1251).GetBytes("login=chus"); req.ContentLength = SomeBytes.Length; newStream = req.GetRequestStream(); newStream.Write(SomeBytes, 0, SomeBytes.Length); newStream.Close(); result = req.GetResponse(); ReceiveStream = result.GetResponseStream(); Encoding encode = Encoding.GetEncoding(1251); sr = new StreamReader(ReceiveStream, encode); Char[] read = new Char[256]; int count = sr.Read(read, 0, 256); string strOut = ""; while (count > 0) { String str = new String(read, 0, count); strOut += str; count = sr.Read(read, 0, 256); } Console.WriteLine(strOut); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Ошибка: " + ex.Message); Console.ReadKey(); } finally { if (newStream != null) newStream.Close(); if (ReceiveStream != null) ReceiveStream.Close(); if (sr != null) sr.Close(); if (result != null) result.Close(); } } } } возникает вопрос как какое событие надо обрабатывать или какое свойство читать что бы узнать что происходит в данный момент времени. например: Устанавливается соединение. Идет передача данных. Разрыв Соединения. и т д. В С++ надо было объявить функцию онстатускалбек в потомке класса CInternetSession примерно таким образом: virtual void OnStatusCallback( DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength){ CString strStatus; switch (dwInternetStatus) { case INTERNET_STATUS_RESOLVING_NAME: strStatus.Format("Resolving name %s", lpvStatusInformation); break; case INTERNET_STATUS_NAME_RESOLVED: strStatus.Format("Name resolved %s", lpvStatusInformation); break; case INTERNET_STATUS_HANDLE_CREATED: strStatus.Format("Handle created"); break; case INTERNET_STATUS_CONNECTING_TO_SERVER: strStatus.Format("Connecting to socket address"); break; case INTERNET_STATUS_CONNECTED_TO_SERVER: strStatus.Format("Connected to socket address"); break; case INTERNET_STATUS_SENDING_REQUEST: strStatus.Format("Sending request"); break; case INTERNET_STATUS_REQUEST_SENT: strStatus.Format("Request sent"); break; case INTERNET_STATUS_RECEIVING_RESPONSE: return; strStatus.Format("Receiving response"); break; case INTERNET_STATUS_RESPONSE_RECEIVED: strStatus.Format("Response received"); break; case INTERNET_STATUS_CLOSING_CONNECTION: strStatus.Format("Closing the connection to the server"); break; case INTERNET_STATUS_CONNECTION_CLOSED: strStatus.Format("Connection to the server closed"); break; case INTERNET_STATUS_HANDLE_CLOSING: return; strStatus.Format("Handle closed"); break; case INTERNET_STATUS_REQUEST_COMPLETE: strStatus.Format("Request complete"); break; case INTERNET_STATUS_REDIRECT: strStatus.Format("Being redirected"); break; default: strStatus.Format("Unknown status: %d", dwInternetStatus); break; } p_FrameWndGlobal ->SetWindowText(strStatus); return; } интересует как это сделать на C# |
Сообщ.
#2
,
|
|
|
подсказали в какую сторону копать хотя бы
|