На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Статус работы Webresponse , события
    Посылаю запрос на сервер по POST запросом и принимаю результат работы примерно таким вот образом (пример где то с Интернета слил)
    ExpandedWrap disabled
      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 примерно таким образом:

    ExpandedWrap disabled
      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#
      подсказали в какую сторону копать хотя бы
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0616 ]   [ 17 queries used ]   [ Generated: 24.04.24, 02:22 GMT ]