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();
}
}
}
- 浏览: 189081 次
- 性别:
- 来自: 深圳
文章分类
最新评论
发表评论
文章已被作者锁定,不允许评论。
-
使用SignalR构建一个最基本的web聊天室
2015-01-06 15:09 763使用SignalR,可以使用服务器消息推送到客户端,件demo ... -
Cookie小知识
2014-12-17 11:02 597如果cookie设置了过期时间,cookie就会保存在硬盘中 ... -
远程服务器返回错误: (500) 内部服务器错误 (解决方案)
2013-12-19 18:00 14175“/”应用程序中的服务器错误。 远程服务器返回错误: ... -
ado.net 连接池相关知识
2013-01-27 20:07 838using System;using System.Coll ... -
c# 验证码生成与使用
2012-10-07 14:37 907---生成验证码的类 using System;using ... -
多线程的理解
2012-09-21 00:31 718什么是多线程:多线程就是“同时”可以执行多个任务,实际上并不是 ... -
委托:委托、事件与Observer设计模式
2012-09-20 23:10 946上面的例子已不足以再进行下面的讲解了,我们来看一个新的范例,因 ... -
委托:将方法绑定到委托
2012-09-20 22:59 800将方法绑定到委托 看到这里,是不是有那么点如梦初醒的感觉?于 ... -
委托:将方法做为方法的参数
2012-09-20 22:51 730引言 委托 和 事件在 .Net Framework中的应用 ... -
C#,FTP上传的代码 FtpWebRequest
2012-08-24 22:46 961private void Upload(string file ... -
c#之冒泡法与快速法排序
2012-08-08 22:10 740设计页面labe1 ,label2 ,label5分 ... -
C#中数组类型的相互转换
2012-08-08 22:11 1539string数组类型转换为int数组.方法一:Con ... -
C#中基类和派生类的构造函数以及变量的执行顺序整理
2012-04-04 22:54 1097Code highlighting produced by A ... -
时间处理类
2012-03-01 11:10 725/// <summary> /// ... -
DropDownList 小知识
2011-12-03 10:24 852给DropDownList 绑定值后,如果要默认选中其中一个 ... -
列表最后一行加小计或总计 ——小总结
2011-11-30 16:56 17671.所有分页的总计 protec ... -
无法加载协定为“tt.WeatherWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
2011-11-22 22:08 3824无法加载协定为“tt.WeatherWebServiceSoa ... -
一个天气预报的webservice
2011-11-21 20:45 1046http://www.webxml.com.cn/WebSer ... -
asp.net 页面生成html页面 方法二
2011-11-15 22:53 979protected override void Render ... -
asp.net 页面生成html页面 方法一
2011-11-15 22:43 864这是个方法 private bool CreateList( ...
相关推荐
以下将详细介绍C#中两种实现异步GET请求的方法。 ### 1. 使用HttpWebRequest异步GET `HttpWebRequest`类是.NET Framework提供的一个类,可以用来发送HTTP请求。以下是如何使用`HttpWebRequest`进行异步GET请求: ...
在C#中,我们可以通过调用HttpClient的GetAsync方法实现异步GET请求。例如: ```csharp using System.Net.Http; ... HttpClient client = new HttpClient(); Task<HttpResponseMessage> responseTask = client....
3. **编写JavaScript**:使用jQuery的$.ajax方法或者$.get方法,发起一个异步请求到服务器。请求的目标可以是一个处理程序(如ASHX或ASMX),或者页面上的一个WebMethod。在请求中,你可以传递必要的参数。 4. **...
在IT行业中,异步刷新是一种常见的技术,用于提高Web应用程序的用户体验,特别是在处理大量数据或进行耗时操作时。此技术允许用户界面在不阻塞其他操作的情况下更新内容,显著提高了网页的响应速度。本资源包含的是...
SNMP(简单网络管理协议)是一种广泛用于网络设备管理的标准协议,它允许系统管理员远程监控和配置网络设备。在C#中实现SNMP操作,主要包括GET和SET请求,这两个是SNMP协议的基础操作。 GET方法在SNMP中用于查询...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏等领域。在C#中处理HTTP请求,如POST和GET,以及与JSON数据交互是常见的任务。本文将深入探讨这些主题。 首先,让我们了解GET...
在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和Web服务方面。本教程将聚焦于如何利用C#通过HTTP协议执行GET和POST请求,与Webservice进行交互,并获取返回的数据。这对于构建客户端应用和...
### JS调用C#方法及C#调用JS方法详解 在Web开发中,前后端交互是必不可少的一个环节。本文将详细介绍如何实现前端JavaScript(JS)与后端C#之间的相互调用,这对于构建功能丰富的Web应用至关重要。下面将按照问题的...
在C#编程中,异步下载文件是一种优化用户体验的关键技术,尤其在处理大文件或需要在后台执行长时间任务时。异步操作允许程序在等待I/O操作完成的同时继续执行其他任务,避免用户界面(UI)的阻塞。本文将详细讨论...
后台代码(ASP.NET C#)通常会定义对应的 Web 方法(WebMethod),这些方法可以被 AJAX 调用。例如,`JqueryCSMethodForm.aspx.cs` 文件中可能有以下两个方法: ```csharp [WebMethod] public static string ...
在`RestSharpApiUtil.cs`中,我们可以预见到一系列静态方法,如`Get`、`Post`、`Put`、`Delete`等,它们分别对应HTTP的四种主要方法。这些方法内部可能会创建`RestClient`和`RestRequest`对象,设置好请求参数,然后...
C#中的LINQ支持查询语法和方法语法两种形式,它使得数据查询和处理变得简单而强大。 正则表达式(regex)是一种文本模式的表示方法,用于匹配字符串中的字符组合。在C#7中,正则表达式的使用没有重大变化,但它仍然...
标题"JS调用C#后台方法"描述了这种跨语言通信的需求。本文将深入探讨如何使用JavaScript调用C#编写的后台方法,并介绍相关技术与实践。 首先,JavaScript作为客户端脚本语言,运行在用户的浏览器上,而C#通常是...
这涉及到配置请求的URL(指向C#方法的URL)、方法类型(GET或POST)、发送的数据(如果有的话),以及处理响应的回调函数。AjaxX可能提供了一些简便的API,简化了这些步骤。 4. **步骤三:处理响应**: 当C#方法...
jQuery的`.ajax()`方法是实现异步请求的核心,它可以发送GET、POST等多种类型的HTTP请求。例如,要发送一个GET请求获取数据,可以写成: ```javascript $.ajax({ url: 'your-api-url', type: 'GET', success: ...
【C#异步编程详解】 在C#编程中,异步编程是一种重要的技术,它允许程序在执行长时间任务时保持响应性,不阻塞主线程。本文将深入探讨异步编程的概念、区别、应用场景以及实际应用示例。 1、什么是异步? 异步...
1. **了解接口文档**:首先,你需要详细阅读第三方接口的文档,了解接口的URL、请求方法(如GET、POST)、所需参数、响应格式(如JSON或XML)等信息。 2. **创建HTTP请求**:使用C#的`System.Net.Http`命名空间,...
在本资源中,我们主要关注HTTP的两种主要请求方法:GET和POST,以及如何使用C#语言来实现这些功能。这份源代码提供了对HTTP协议进行分析的工具,对于学习和开发C#类爬虫程序的初学者来说非常有帮助。 GET方法是HTTP...