我有这段代码:
var content = new ByteArrayContent(Encoding.ASCII.GetBytes(String.Concat("GET\t", _licencia, "\n")));
var recibido = await _client.PostAsync(fullUri, content);
var response = recibido.StatusCode;
this.IsOnline = response == HttpStatusCode.OK;
string contenido = await recibido.Content.ReadAsStringAsync();
if (this.IsOnline)
{
string data = contenido.TrimEnd();
List<string> transacciones = String.IsNullOrEmpty(data) ? null : data.Split('\n').ToList();
var guardadas = ProcessTransactions(transacciones);
if (guardadas != null)
{
StringBuilder sb = new StringBuilder(String.Concat("OK\t", _licencia, "\n"));
content = new ByteArrayContent(Encoding.ASCII.GetBytes(sb.ToString()));
recibido = await _client.PostAsync(fullUri, content);
请参阅第一个PostAsync来电:
var content = new ByteArrayContent(Encoding.ASCII.GetBytes(String.Concat("GET\t", _licencia, "\n")));
var recibido = await _client.PostAsync(fullUri, content);
在这种情况下,内容长度仅为34个字节。到现在为止还挺好。服务器正确接收要求。但是现在看第二个PostAsync调用:
StringBuilder sb = new StringBuilder(String.Concat("OK\t", _licencia, "\n"));
content = new ByteArrayContent(Encoding.ASCII.GetBytes(sb.ToString()));
recibido = await _client.PostAsync(fullUri, content);
在这种情况下,内容长度为33个字节。但是,该调用被阻止,最后它会抛出Task Canceled Exception。这是因为超时,由HttpClient定义为1分40秒。
为什么第二个电话被阻止?我该如何解决?
由于 海梅