网络编程—— Http封装请求的实例

创建task任务对象

异步对象 如果直接使用全局变量,在task外面使用全局的时候这个全局还是初始值,不是此处赋值的值,原因此处代码是属于异步的下面Console.WinteLine(a);执行在a=10的前面

 Task t = new Task(() =>
 {
     a = 10;
     
 });
 t.Start();// 开启任务
 Console.WriteLine(a);
public Task<string> F1()
{
    Task<string> t1 = Task.Run(() =>
    {
        string s1 = "150多万寸头渔民赶赴黄岩岛,备注不会撒网,装满搬砖";
        return s1;
    });
    return t1;
}

添加一个按钮点击的事件

 private async void button1_Click(object sender, EventArgs e)

  string s1 = await F1();
 Console.WriteLine(s1);

 异步任务里面数据怎么放到外面去使用? 例如Task的异步回调里面的数据怎么使用? 

        1 不能直接把异步任务里面的数据定义成全局的
        2 把异步任务里面的数据通过trturn返回出去,但是使用异步任务的时候,在异步任务的前面添加await关键字,在函数前面添加async

 await等待t2异步任务执行完了再去执行下面代码
 async 异步任务

Task<int> t2 = Task.Run(() =>
{
    int aa = 10000;
    return aa;
});
int aaa = await t2;
Console.WriteLine(aaa);

string s =await HttpGetASync("https://www.kuaikanmanhua.com//v2/pweb/rank_type_list");
Console.WriteLine(s);

把封装请求方法封装在异步函数中,

private Task<string> HttpGetASync(string url)
{
    Task<string> t = Task.Run(() =>
{
    WebRequest request = WebRequest.Create(url);
    request.Method = "GET";

    WebResponse response = request.GetResponse();
    Stream st=  response.GetResponseStream();
    StreamReader sr = new StreamReader(st);
    string data = sr.ReadToEnd();
    st.Close();
    sr.Close();
    return data;
});
return t;
}

点击按钮运行结果为

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值