httpRequest, httpResponse, отправить GET через Stream и получить результат в C#

Вот что я пытаюсь сделать:

  • Подключиться к http-сервису

  • Отсюда мне нужно получить ПОТОК для связи с этим.

  • Теперь я отправляю запрос GET, и служба мне отвечает.

  • Затем, после первого запроса GET и ответа, мне нужно перехватывать каждый раз, когда служба мне что-то отправляет.

Как я могу сделать?

Я пытаюсь со вчерашнего дня с помощью httRequest, httResponse, GetResponseStream и т. Д., Но не работает :(

Как я могу заставить поток «разговаривать» со службой, отправляющей запрос GET?

все это для NETCF 3.5.

Большое спасибо!


person Leen15    schedule 08.01.2011    source источник


Ответы (1)


Вот пример того, как это сделать синхронно

WebRequest request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html";

Stream reader = request.GetResponse().GetResponseStream();

а здесь асинхронный образец

///........
WebRequest request = WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html";

IAsyncResult result = request.BeginGetResponse(RequestCallback, request);
///........

private void RequestCallback(IAsyncResult ar)
{
     var request = ar.AsyncState as WebRequest;
     Stream reader = request.EndGetResponse(ar).GetResponseStream();
     //use this reader to read the content
}
person Pablo Retyk    schedule 08.01.2011
comment
Извините, где я пишу запрос GET? - person Leen15; 08.01.2011
comment
я не понимаю .. Мне нужно отправить запрос GET, сервер ответит мне, и мне нужно подтвердить получение ответа другим GET. Я думаю, для этого мне нужно иметь поток, чтобы написать запрос и дождаться ответа. нет? В вашем примере я отправляю один запрос GET и ответ сервера. но операция, наконец, там, мне нужно иметь постоянную связь с сервером. это невозможно? Спасибо - person Leen15; 08.01.2011
comment
Если я правильно понимаю, что это невозможно (насколько я знаю), вы отправляете запрос, а затем получаете ответ, и если вам нужно больше связи, вы отправляете другой запрос, я не думаю, что у вас может быть открытый дуплексный канал (может быть, я ошибаюсь) - person Pablo Retyk; 08.01.2011
comment
это должно работать: msdn .microsoft.com/en-en/library/ но в результате много данных, что не важно.. :( - person Leen15; 08.01.2011