2015-09-18 5 views
2

Что я пытаюсь сделатьПостоянный HTTP соединение

Я пытаюсь открыть соединение с этим потокового веб-сервиса, который использует структуру атмосферы. Мне нужно иметь возможность открыть соединение и ждать, пока служба отправит событие, но я действительно не знаю, как это сделать.

Главное, чтобы соединение было открытым.

Мой код So Far

public void LiveStream() 
{ 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.somewhere.com"); 

    [...] 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    using (Stream responseStream = response.GetResponseStream()) 
    { 
     StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); 
     String json = reader.ReadToEnd(); 
     [...] 
    } 
    [...] 
} 
+2

http://stackoverflow.com/questions/1530572/how-to-do-a-long-polling-client-in-c – CodeCaster

+0

Веб-узлы (https://en.wikipedia.org/wiki/WebSocket)? (с, например, в C#, SignarR: http://www.asp.net/signalr/overview/getting-started/introduction-to-signalr) –

ответ

0

Вы можете использовать следующий фрагмент кода:

public async void LiveStream() 
{ 
    using(var client = new HttpClient()) 
    { 
     client.Timeout = new TimeSpan(SET DESIRED TIMEOUT); 
     string response = client.GetStringAsync("http://api.sample.com"); 
    } 
} 

или с помощью HttpResponse

public async void LiveStream() 
{ 
    using(var client = new HttpClient()) 
    { 
     client.Timeout = new TimeSpan(SET DESIRED TIMEOUT); 
     var response = client.GetAsync("http://api.sample.com"); 
     if(repsone.IsSuccessStatusCode) 
     { 
      string contentJson = response.Content.ReadAsStringAsync(); 
     } 
    } 
} 

Помните: По умолчанию TimeOut 100 секунд.

 Смежные вопросы

  • Нет связанных вопросов^_^