`

C# 的异步get 的三种方法

 
阅读更多

using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace WebClientAsynProject
{
public class Program
{
#region HttpWebRequest异步GET

public static void AsyncGetWithWebRequest(string url)
{
var request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.BeginGetResponse(new AsyncCallback(ReadCallback), request);

}

private static void ReadCallback(IAsyncResult asynchronousResult)
{
var request = (HttpWebRequest)asynchronousResult.AsyncState;
var response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var resultString = streamReader.ReadToEnd();
Console.WriteLine(resultString);
}
}

#endregion


#region WebClient异步GET

public static void AsyncGetWithWebClient(string url)
{
var webClient = new WebClient();

webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
webClient.DownloadStringAsync(new Uri(url));
}

private static void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
//Console.WriteLine(e.Cancelled);
Console.WriteLine(e.Error != null ? "WebClient异步GET发生错误!" : e.Result);
}

#endregion


#region WebClient的OpenReadAsync测试

public static void TestGetWebResponseAsync(string url)
{
var webClient = new WebClient();
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
webClient.OpenReadAsync(new Uri(url));
}

private static void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
var streamReader = new StreamReader(e.Result);
var result = streamReader.ReadToEnd();
Console.WriteLine(result);
}
else
{
Console.WriteLine("执行WebClient的OpenReadAsync出错:" + e.Error);
}
}

#endregion

public static void Main(string[] args)
{
AsyncGetWithWebRequest("http://baidu.com");
Console.WriteLine("hello");

AsyncGetWithWebClient("http://baidu.com");
Console.WriteLine("world");

TestGetWebResponseAsync("http://baidu.com");
Console.WriteLine("jxqlovejava");

Console.Read();
}

}
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    C#实现异步GET的方法

    以下将详细介绍C#中两种实现异步GET请求的方法。 ### 1. 使用HttpWebRequest异步GET `HttpWebRequest`类是.NET Framework提供的一个类,可以用来发送HTTP请求。以下是如何使用`HttpWebRequest`进行异步GET请求: ...

    HTTP异步请求数据Demo(C#)

    在C#中,我们可以通过调用HttpClient的GetAsync方法实现异步GET请求。例如: ```csharp using System.Net.Http; ... HttpClient client = new HttpClient(); Task<HttpResponseMessage> responseTask = client....

    c# webform 异步加载用户控件

    3. **编写JavaScript**:使用jQuery的$.ajax方法或者$.get方法,发起一个异步请求到服务器。请求的目标可以是一个处理程序(如ASHX或ASMX),或者页面上的一个WebMethod。在请求中,你可以传递必要的参数。 4. **...

    Jquery,C#异步刷新源代码

    在IT行业中,异步刷新是一种常见的技术,用于提高Web应用程序的用户体验,特别是在处理大量数据或进行耗时操作时。此技术允许用户界面在不阻塞其他操作的情况下更新内容,显著提高了网页的响应速度。本资源包含的是...

    C# snmp get和set方法实现,含源码

    SNMP(简单网络管理协议)是一种广泛用于网络设备管理的标准协议,它允许系统管理员远程监控和配置网络设备。在C#中实现SNMP操作,主要包括GET和SET请求,这两个是SNMP协议的基础操作。 GET方法在SNMP中用于查询...

    C# url post get json

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏等领域。在C#中处理HTTP请求,如POST和GET,以及与JSON数据交互是常见的任务。本文将深入探讨这些主题。 首先,让我们了解GET...

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...

    C#通过HTTP协议get、post Webservice,并返回数据

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和Web服务方面。本教程将聚焦于如何利用C#通过HTTP协议执行GET和POST请求,与Webservice进行交互,并获取返回的数据。这对于构建客户端应用和...

    js调用C#方法

    ### JS调用C#方法及C#调用JS方法详解 在Web开发中,前后端交互是必不可少的一个环节。本文将详细介绍如何实现前端JavaScript(JS)与后端C#之间的相互调用,这对于构建功能丰富的Web应用至关重要。下面将按照问题的...

    JS调用C#后台方法

    标题"JS调用C#后台方法"描述了这种跨语言通信的需求。本文将深入探讨如何使用JavaScript调用C#编写的后台方法,并介绍相关技术与实践。 首先,JavaScript作为客户端脚本语言,运行在用户的浏览器上,而C#通常是...

    C#异步下载文件

    在C#编程中,异步下载文件是一种优化用户体验的关键技术,尤其在处理大文件或需要在后台执行长时间任务时。异步操作允许程序在等待I/O操作完成的同时继续执行其他任务,避免用户界面(UI)的阻塞。本文将详细讨论...

    jquery异步调用页面后台方法

    后台代码(ASP.NET C#)通常会定义对应的 Web 方法(WebMethod),这些方法可以被 AJAX 调用。例如,`JqueryCSMethodForm.aspx.cs` 文件中可能有以下两个方法: ```csharp [WebMethod] public static string ...

    learn c# in 7 days get up and running with c#7

    C#中的LINQ支持查询语法和方法语法两种形式,它使得数据查询和处理变得简单而强大。 正则表达式(regex)是一种文本模式的表示方法,用于匹配字符串中的字符组合。在C#7中,正则表达式的使用没有重大变化,但它仍然...

    ajaxX调用C#方法

    这涉及到配置请求的URL(指向C#方法的URL)、方法类型(GET或POST)、发送的数据(如果有的话),以及处理响应的回调函数。AjaxX可能提供了一些简便的API,简化了这些步骤。 4. **步骤三:处理响应**: 当C#方法...

    JQurey纯HTML控件,异步处理

    jQuery的`.ajax()`方法是实现异步请求的核心,它可以发送GET、POST等多种类型的HTTP请求。例如,要发送一个GET请求获取数据,可以写成: ```javascript $.ajax({ url: 'your-api-url', type: 'GET', success: ...

    C#编程总结(六)详解异步编程

    【C#异步编程详解】 在C#编程中,异步编程是一种重要的技术,它允许程序在执行长时间任务时保持响应性,不阻塞主线程。本文将深入探讨异步编程的概念、区别、应用场景以及实际应用示例。 1、什么是异步? 异步...

    C# RestSharpUtil RestSharp工具类

    在`RestSharpApiUtil.cs`中,我们可以预见到一系列静态方法,如`Get`、`Post`、`Put`、`Delete`等,它们分别对应HTTP的四种主要方法。这些方法内部可能会创建`RestClient`和`RestRequest`对象,设置好请求参数,然后...

    新中新电子 C# 调用 第三方接口

    1. **了解接口文档**:首先,你需要详细阅读第三方接口的文档,了解接口的URL、请求方法(如GET、POST)、所需参数、响应格式(如JSON或XML)等信息。 2. **创建HTTP请求**:使用C#的`System.Net.Http`命名空间,...

    HTTP Get POST 分析工具(c# 源代码)

    在本资源中,我们主要关注HTTP的两种主要请求方法:GET和POST,以及如何使用C#语言来实现这些功能。这份源代码提供了对HTTP协议进行分析的工具,对于学习和开发C#类爬虫程序的初学者来说非常有帮助。 GET方法是HTTP...

Global site tag (gtag.js) - Google Analytics