Постоянное соединение HTTP
Что я пытаюсь сделать
Я пытаюсь открыть соединение с этим потоковым веб-сервисом, использующим инфраструктуру атмосферы. Мне нужно иметь возможность открыть соединение и ждать, пока служба отправит событие, но я действительно не знаю, как это сделать.
Самое главное, чтобы соединение оставалось открытым.
Мой код до сих пор
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();
[...]
}
[...]
}
1 ответ
Вы можете использовать следующий фрагмент:
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 секунд.