У меня есть демо ASHx WebService так:C# HttpClient соединение KeepAlive
public void ProcessRequest(HttpContext context)
{
//string s = context.Request.Form["prova"];
string a= context.Request.Form["a"];
string b= context.Request.Form["b"];
TryKeepAlive();
context.Response.Write("ok");
}
где trykeepalive просто делает:
private void TryKeepAlive()
{
int msTimeout = 999999999;
System.Threading.Thread.Sleep(msTimeout);
}
это просто демо, но у меня есть такая же проблема сохранения соединения живой в другом реальном методе.
с телефона я звоню пост через HttpClient:
public async void PostIt()
{
string url = "myurl.htm";
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("a", "12345"),
new KeyValuePair<string, string>("b", "123456")
};
var httpClient = new HttpClient(new HttpClientHandler());
HttpResponseMessage response = await httpClient.PostAsync(url, new FormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
var responseString = await response.Content.ReadAsStringAsync();
}
код работает, моя единственная проблема держит связь в живых за все время. может кто-нибудь сказать мне, как это сделать? Я читал о методе keepAlive(), может ли кто-нибудь показать мне, как его реализовать? спасибо
Np, у меня была такая же проблема вчера, нет комментариев для комментариев. Я читал для .keepalive = true, моя проблема заключается в том, как использовать его в вызове HttpClient, couse я не могу делать httpClient.KeepAlive couse его не существует –
Я думаю (не уверен), что с httpclient его по умолчанию установлено к истине, я сбивал с толку предложение '.keepalive' –
Да, спасибо большое, но проблема, как я нашел сейчас, заключается в том, что у телефона с телефоном установлен тайм-аут по умолчанию, равный 60 секундам, и установка keepalive не меняет его , если кто-то знает, как изменить это значение, это решит многие мои проблемы. Спасибо, в любом случае –