Asynchronous webRequest melhores práticas

votos
8

Qual é a melhor prática para a obtenção de um webrequest de forma assíncrona?

Quero baixar uma página da internet (não importa o quê) e evitar o bloqueio de um fio, tanto quanto possível.

Antigamente eu acreditava que era apenas o suficiente para usar o 'BeginGetResponse' e um par de 'EndGetResponse'. Mas em uma inspeção mais Vejo também que existe a opção de usar 'BeginGetRequestStream'

[UPDATE] GetRequestStream é utilizado para operações de pós

E, em seguida, para aumentar a confusão, Devo estar usando stream.BeginRead e EndRead?

[UPDATE] este artigo sugere que é ainda melhor para processar o HttpResponse.GetResponseStream assincronamente usando Stream.BeginRead

Que bagunça!

Alguém pode me apontar na direção certa?

Qual é a melhor prática?

Publicado 23/02/2009 em 04:23
fonte usuário
Em outras línguas...                            


4 respostas

votos
5

Você pode codificar tudo isso mesmo ou você poderia usar apenas WebClient que faz um monte de trabalho duro para você. Por exemplo, para baixar o arquivo como uma string você chamaria DownloadStringAsync () que, eventualmente, irá disparar o evento OnDowloadStringCompleted. Se o arquivo é binário que você pode tentar usar DownloadDataAsync () em vez.

Respondeu 24/02/2009 em 09:22
fonte usuário

votos
1

O artigo a seguir parece ter um bom tutorial sobre como usar HttpWebRequest de forma assíncrona usando tópicos:

http://www.developerfusion.com/code/4654/asynchronous-httpwebrequest/

Respondeu 23/02/2009 em 05:00
fonte usuário

votos
0

Você já pensou em fazer a solicitação da web em um novo segmento?

http://msdn.microsoft.com/en-us/library/ms173178.aspx

Respondeu 24/02/2009 em 08:06
fonte usuário

votos
0
  1. Você usa Begin / EndGetResponse esperar asynchonously para a resposta HTTP. Se você está fazendo um POST e precisa enviar um monte de dados de forma assíncrona, utilize Begin / EndGetRequestStream.

  2. Isso não é exclusivo para comunicação assíncrona - você pode olhar para cima as versões síncronas para obter informações adicionais.

  3. Eu não sei por que você estaria fazendo uma leitura sobre o fluxo de pedido - provavelmente você estará escrevendo para ele, e lendo a partir do fluxo de resposta.

Finalmente, o blog de Jeffrey Richter tem um artigo sobre algumas das sutilezas de HttpWebRequest e córregos.

Respondeu 23/02/2009 em 05:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more