C# async await异步编程简要介绍

这里简要介绍async  await异步编程用法。

以HttpClient的PostAsync举例,异步调用Http POST请求。

  public async Task<string> PostAsync(string url, string strJson)//post异步请求方法
        {
            try
            {
                HttpContent content = new StringContent(strJson);
                content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                //由HttpClient发出异步Post请求
                HttpResponseMessage res = await client.PostAsync(url, content);
                if (res.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    Thread.Sleep(1000);//线程睡眠1秒用于测试
                    string str = res.Content.ReadAsStringAsync().Result;
                    return str;
                }
                else
                    return null;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

编写调用方式:

再编写一个异步方法,用来获取异步POST返回的信息,并进行一些操作。

        /// <summary>
        /// 再编写一个异步方法,用来获取异步POST返回的信息,并进行一些操作。
        /// </summary>
        /// <param name="url">POST请求地址</param>
        /// <param name="strJson">POST请求的json字符串参数</param>
        /// <returns></returns>
        private async Task<string> GetContentAsync(string url, string strJson)
        {
            HttpClientHelper cl = new HttpClientHelper();
            var content = await cl.PostAsync(url, strJson);
            textBox6.Text = content;
            return content;
        }

测试实例:

 private void button19_Click(object sender, EventArgs e)
        {
            InputText();
            jsonStuInfo stuInfo = new jsonStuInfo();
            stuInfo.sTID = this.sTID;
            stuInfo.nChildTID = this.nChildTID;
            string url = this.address + "Api_TestProc_Paper_GetPaperInfo";
            string strJson = JsonConvert.SerializeObject(stuInfo);
            var zipTeaInfo = GetContentAsync(url, strJson);
            textBox6.Text = zipTeaInfo.IsCompleted.ToString();
        }

此处返回信息经过加密,并非乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值