网络请求HttpWebRequest的Get和Post

用下边的小例子讲解具体功能的实现:

首先,我们想要请求远程站点,需要用到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();
    • }
时间: 2024-10-20 14:06:20

网络请求HttpWebRequest的Get和Post的相关文章

Xamarin.Android之封装个简单的网络请求类

一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于HttpClient和HttpWebRequest两种方式的封装. 由于对这一块还不是很熟悉,所以可能不是很严谨. 二.先上封装好的代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Json

c# .net core 下的网络请求

本文章是在VS2017的环境下,.net core 1.1版本以上. 在这期间,由于.net core 并不基于IIS,我们的过去的网络请求代码在.net core框架下,有可能会出现不兼容,报错的现象.这里大致介绍下在.net core 下如何进行http请求,主要仍然是GET和POST方法,有错误的地方,欢迎指正! 先来说POST,POST我实现了三种方法,前两种基于的原理是完全一致的,后面的有些小小的差异,但他们的本质都是http请求,本质上是无区别的,只是实现方法有所不同. 废话不多说,

Windows Phone 网络请求方式对比

目前的Windows Phone平台支持有以下几种实现网络请求的方式:HttpWebRequest.WebClient.WebBrowser.Socket 我个人给他们分个类: 最实用,最麻烦:HttpWebRequest 最简洁:WebClient 最猥琐:WebBrowser 最不常用:Socket 可能用到的一些wp源码案例:http://code.662p.com/list/14_1.html 1.HttpWebRequest: 能实现各种WP上支持的请求类型(目前支持POST/GET)

C#网络请求与JSON解析

最新学校的海康摄像头集控平台(网页端)不能在win10里登录,我寻思着拿海康的c# demo直接改. 首先得解决权限问题,每个教师任教不同年级,只能看到自己所在年级的设备,涉及到登录,在此记录一下C#中网络请求和数据处理的一些内容.大致流程为: 客户端发起登录请求: 服务端验证账号密码 返回json字符串,包含用户信息.平台配置等信息 客户端解析并初始化 一.发起GET请求 private string HttpGet(string api) { string serviceAddress =

ios编程之网络请求

网络请求有GET请求和POST请求,get和post实现的时候可以选择同步或者异步实现.看一个请求是GET还是POST就看网址后面有没有携带请求体. GET与POST 区别 1.get请求 请求的网址全部明文显示 安全性不高 2.get请求 请求的网址 有字符数的限制 大概255个 3.post请求 请求的网址 不光是有一个请求的网址 还可以携带请求体 这个请求体 是以NSData形式存在 安全性较高 4.post请求没有字符数的限制 GET同步和GET异步 同步请求是在请求数据的时候不能做其他

Swift网络请求(Moya篇)

在使用Alamofire进行网络请求的时候,相信大部分的同学都会封装一个抽象的NetworkLayer,如"APIManager" 或者 "NetworkModel"等等.但是位置业务功能增加,会渐渐混合各种请求,不够清晰,而Moya能很好地解决这类问题.Moya在Alamofire基础上进行封装,是一个允许高度自定义的网络层,可以根据具体的需求进行接口的设置.具体的介绍可以参考Moya的官方链接,结构图如下: 接下来就介绍一下Moya的一些常见的用法: (一)根据

微信小程序 网络请求之re.request 和那些坑

微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downloadFile) WebSocket通信(wx.connectSocket) 首先,先确认是否设置了合法域名,或者在开发环境下不校验合法域名.关于设置合法域名请看→微信小程序 网络请求之设置合法域名   以下是wx.request的详细说明,截图于微信小程序开发文档 在微信index.js 发起一个普

Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所帮助. 首先按照惯例先来简单了解一些AsyncHttpClient网络框架的一些知识. 1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用android-a

Go实战--实现一个自己的网络请求日志httplogger(The way to go)

生命不止,继续go go go~~~ 之前我们简要介绍了go语言中的log package 和 net/http package,那么我们今天就干点实事儿,将二者结合,实现我们自己的日志记录网络请求. 另外,我们还没有跟你介绍time package,但是也可以看懂的. 首先,我默认你了解go语言的组织结构. 导入需要的package 我们需要 log net/http time三个包 package httplogger import ( "log" "net/http&q