【发布时间】:2016-05-25 17:53:23
【问题描述】:
我有以下代码:
var client = new HttpClient()
{
BaseAddress = new Uri(@"https://myhost:myport/"),
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var uri = @"myurl";
var s = JsonConvert.SerializeObject(myobject);
string responseResult = string.Empty;
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, uri);
request.Content = new StringContent(s, Encoding.UTF8, "application/json");
client.SendAsync(request)
.ContinueWith(responseTask =>
{
responseResult = responseTask.Result.Content.ReadAsStringAsync().Result;
});
txtLog.Text = responseResult;
上面的请求应该返回一个字符串结果,但是结果是空的。我会失踪吗?
【问题讨论】:
-
ContinueWith 确保它包含的方法将在 AsyncCall 之后执行,但它仍然是异步的。这意味着您对“txtLog.Text”的分配可能发生在“ContinueWith”执行之前。
标签: c# httpclient