如何在ASP.net页面中请求远程Web站点

问:如何在已有ASP.net页面中,去请求远程WEB站点,并能传参,且得到请求所响应的结果。用下边的小例子讲解具体功能的实现:

首先,我们想要请求远程站点,需要用到HttpWebRequest类,该类在System.Net命名空间中,所以需要引用一下。另外,在向请求的页面写入参数时需要用到Stream流操作,所以需要引用System.IO命名空间。

以下为Get请求方式:

Uri uri = new Uri("http://www.cnsaiko.com/");//创建uri对象,指定要请求到的地址
if (uri.Scheme.Equals(Uri.UriSchemeHttp))//验证uri是否以http协议访问
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);//使用HttpWebRequest类的Create方法创建一个请求到uri的对象。
    request.Method = WebRequestMethods.Http.Get;//指定请求的方式为Get方式  

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();//获取该请求所响应回来的资源,并强转为HttpWebResponse响应对象
    StreamReader reader = new StreamReader(response.GetResponseStream());//获取该响应对象的可读流
    string str = reader.ReadToEnd(); //将流文本读取完成并赋值给str
    response.Close(); //关闭响应
    Response.Write(str); //本页面输出得到的文本内容
    Response.End(); //本页面响应结束。
}

以下为POST请求方式:

Uri uri = new Uri("http://www.cnsaiko.com/Admin/Login.aspx?type=Login");//创建uri对象,指定要请求到的地址,注意请求的地址为form表单的action地址。
       if (uri.Scheme == Uri.UriSchemeHttp)//验证uri是否以http协议访问
       {
           string name = Server.UrlEncode("张三");//将要传的参数进行url编码
           string pwd = Server.UrlEncode("123");
           string data = "UserName=" + name + "&UserPwd=" + pwd; //data为要传的参数,=号前边的为表单元素的名称,后边的为要赋的值;如果参数为多个,则使用"&"连接。
           HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
           request.Method = WebRequestMethods.Http.Post;//指定请求的方式为Post方式
           request.ContentLength = data.Length; //指定要请求参数的长度
           request.ContentType = "application/x-www-form-urlencoded"; //指定请求的内容类型  

           StreamWriter writer = new StreamWriter(request.GetRequestStream()); //用请求对象创建请求的写入流
           writer.Write(data); //将请求的参数列表写入到请求对象中
           writer.Close(); //关闭写入流。  

           HttpWebResponse response = (HttpWebResponse)request.GetResponse();
           StreamReader reader = new StreamReader(response.GetResponseStream());
           string str = reader.ReadToEnd();
           response.Close();
           Response.Write(str);
           Response.End();
       }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, httpwebrequest
, uri
, post传参
, request
, httpwebresponse
, response
, HttpWebResponse 
, 远程请求
, 请求方式
, 页面请求
web地址传参
,以便于您获取更多的相关知识。

时间: 2024-08-30 05:51:24

如何在ASP.net页面中请求远程Web站点的相关文章

在ASP.NET页面中动态添加控件

今天被问到如何在ASP.NET 页面中动态创建一批控件,并且希望在后续代码 中能访问到这些动态创建的控件.我用下面的例子来解释这个问题 页面文件: <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1&quo

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表:一个运行在调试模式的应用程序下和一个运行在发布模式的应用程序下.在调试模式下,JavaScript 文件在未使用压缩功能的情况下会被下载.如果想要调试并在 JavaScript 控制器中设置断点,这是必须的.事实上,路由表的产生版本也出现了一些挑战,由于产生路由代码使用的是 JavaScript

如何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分. ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一.捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站.有许多可以减少 CS

如何在 ASP.NET MVC 中集成 AngularJS(1)

介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新的设计模式和技术. 当选择最新的软件技术时,有几个因素在起作用,其中包括如何将这些技术整合起来.过去两年中,我最喜欢的一项技术就是设计单页面应用(SPA)的 AngularJS.作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆

获取页面中的变量-怎样获取asp.net页面中的变量

问题描述 怎样获取asp.net页面中的变量 做了一个类似应答的页面,对方请求这个页面,我获取请求的参数,进行一些后台处理,然后返回一个json字符串,json字符串放在如下的位置 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="requestProcess.aspx.cs" Inherits="_Default" %> <%=strJson %

固定表头-在ASP.NET页面中,固定DATAGRID表头出现的问题

问题描述 在ASP.NET页面中,固定DATAGRID表头出现的问题 使用DIV标签加js纯页面固定表头,实际上就是将表头获取出来填充到一个DIV中,问题就是如何将表头和表中的内容对齐,特别是在表中数据动态改变列宽不固定的时候

ASP.NET页面中去除VIEWSTATE视图状态乱码

首先声明下这篇文章:本文章的发表于2014-10-11日,原作者和版权所有:KoalaAPI(还是本人啦),原链接:http://www.cnblogs.com/KoalaAPI/p/4018727.html(曾被删除!) 保存页的所有视图状态信息和控件状态信息. 作者在早期参与的项目中曾遇到这样的需求:基于SEO技术的开发,当因为时没有接触的MVC框架的 Razor 引擎,所以只能用ASP.NET引擎,如果使用ASP.NET引擎的服务器端控件,那么在ASP.NET页面中就会生成 __Views

在ASP.NET页面中推荐使用覆写而不是事件处理

asp.net|页面 English Version: http://dflying.dflying.net/1/archive/101_prefer_overrides_to_event_handlers_in_aspnet_page.html 这个是我们熟悉的Page_Load()方法.实际上它是一个Event Handler,当定义在System.Web.UI.Page中的Load事件触发时,它开始执行. // use event handlerprotected void Page_Lo

ASP.NET页面中冻结DataGrid的列或头部

asp.net|datagrid|页面 ASP.NET页面中,有时候我们需要冻结datagrid中的某一列,比如显示的数据项过多时,我们需要让第一列不动,拖动横向滚动条时其他列隐藏,这时就需要冻结列了:另外,有时候也需要让datagrid的头部不动,拖动纵向滚动条时,下面的数据项可以滚动.在实现的过程中,其实就是用了css样式来控制,一起看一下. 要冻结哪一列,就把fixCol这个CSS加到HeaderStyle-CssClass和ItemStyle-CssClass--> <style ty