C#使用post发送和接收数据的方法

本文实例讲述了C#使用post发送和接收数据的方法。分享给大家供大家参考。具体实现方法如下:

public partial class Post_Server : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
  string type = "";
  string Re = "";
  Re += "数据传送方式:";
  if (Request.RequestType.ToUpper() == "POST")
  {
   type = "POST";
   Re += type + "<br/>参数分别是:<br/>";
   SortedList table = Param();
   if (table != null)
   {
    foreach (DictionaryEntry De in table) {
     Re += "参数名:" + De.Key + " 值:" + De.Value + "<br/>";
    }
   }
   else
   { Re = "你没有传递任何参数过来!"; }
  }
  else
  {
   type = "GET";
   Re += type + "<br/>参数分别是:<br/>";
   NameValueCollection nvc = GETInput();
   if (nvc.Count != 0)
   {
    for (int i = 0; i < nvc.Count; i++){
    Re += "参数名:"+nvc.GetKey(i)+"值:"+nvc.GetValues(i)[0]+"<br/>";
 }
   }
   else
   { Re = "你没有传递任何参数过来!"; }
  }
  Response.Write(Re);
 }
 //获取GET返回来的数据
 private NameValueCollection GETInput()
 { return Request.QueryString; }
 // 获取POST返回来的数据
 private string PostInput()
 {
  try
  {
   System.IO.Stream s = Request.InputStream;
   int count = 0;
   byte[] buffer = new byte[1024];
   StringBuilder builder = new StringBuilder();
   while ((count = s.Read(buffer, 0, 1024)) > 0)
   {
    builder.Append(Encoding.UTF8.GetString(buffer,0,count));
   }
   s.Flush();
   s.Close();
   s.Dispose();
   return builder.ToString();
  }
  catch (Exception ex)
  { throw ex; }
 }
 private SortedList Param()
 {
  string POSTStr = PostInput();
  SortedList SortList = new SortedList();
  int index = POSTStr.IndexOf("&");
  string[] Arr = { };
  if (index != -1) //参数传递不只一项
  {
   Arr = POSTStr.Split('&');
   for (int i = 0; i < Arr.Length; i++)
   {
    int equalindex = Arr[i].IndexOf('=');
    string paramN = Arr[i].Substring(0, equalindex);
    string paramV = Arr[i].Substring(equalindex + 1);
    if (!SortList.ContainsKey(paramN))
    //避免用户传递相同参数
    { SortList.Add(paramN, paramV); }
    else //如果有相同的,一直删除取最后一个值为准
    {
     SortList.Remove(paramN); SortList.Add(paramN, paramV);
    }
   }
  }
  else //参数少于或等于1项
  {
   int equalindex = POSTStr.IndexOf('=');
   if (equalindex != -1)
   { //参数是1项
    string paramN = POSTStr.Substring(0, equalindex);
    string paramV = POSTStr.Substring(equalindex + 1);
    SortList.Add(paramN, paramV);
   }
   else //没有传递参数过来
   { SortList = null; }
  }
  return SortList;
 }
}
protected void Button1_Click(object sender, EventArgs e)
{
  Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
  byte[] arrB = encode.GetBytes("aa=aa&bb=好飞");
  HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://localhost:11626/MyTest/Post_Server.aspx");
  myReq.Method = "POST";
  myReq.ContentType = "application/x-www-form-urlencoded";
  myReq.ContentLength = arrB.Length;
  Stream outStream = myReq.GetRequestStream();
  outStream.Write(arrB, 0, arrB.Length);
  outStream.Close();
  //接收HTTP做出的响应
  WebResponse myResp = myReq.GetResponse();
  Stream ReceiveStream = myResp.GetResponseStream();
  StreamReader readStream = new StreamReader(ReceiveStream, encode);
  Char[] read = new Char[256];
  int count = readStream.Read(read, 0, 256);
  string str = null;
  while (count > 0)
  {
   str += new String(read, 0, count);
   count = readStream.Read(read, 0, 256);
  }
  readStream.Close();
  myResp.Close();
  Response.Write(str);
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • div弹出层的ajax登录(Jquery版+c#)

    页面初始化,界面如图所示: Server name文本框获取焦点时候,界面如图所示(这里可以改成你登录的验证码): 可以加载SQL Server服务列表,也是我的简易SQL查询分析器评论中静夜妙思给予的方法,非常感谢! 加载列表如下图所示: 可以随意地点击添加到Server name中,登录时截图所示: 文本框验证都写好了!还有Authentication验证方式,windows验证下面Login,Password文本框禁掉!由于时间原因,不上图了 demo.html(全部前台代码,js/css

  • C#.NET实现网页自动登录的方法

    本文实例讲述了C#.NET实现网页自动登录的方法.分享给大家供大家参考.具体如下: 用C#语言编写一个Windows Form应用程序,实现自动登录一个特定的页面. 下面以自动登录:http://localhost/Web/Login.aspx 作为例子,讲解如何模拟手工输入用户名密码并点击登录,实现自动登录. 新建一个C#应用程序,给应用程序起个名字,如AutoLogin,在窗体中添加一个TextBox.Button,及WebBrowser控件,并为WebBrowser控件添加webBrows

  • C#发送HttpPost请求来调用WebService的方法

    复制代码 代码如下: void UpdateContactSign()        {           string ServerPage ="http://localhost/WebService/MyService.asmx";            try            {                //ServerPage += "?op=TangramAction";                ServerPage += "

  • c#调用存储过程实现登录界面详解

    1,创建存储过程 复制代码 代码如下: create proc Pro_Login(@UserName nvarchar(10),@PassWord nvarchar(10))as select * from [User] UserName=@UserName and PassWord=@PassWord 2,通过类是实现配置数据库字符串连接 复制代码 代码如下: class ConnectionString{public static string conStr = "Data Source=

  • C#中在WebClient中使用post发送数据实现方法

    很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地.Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法.本文就较为详细的说明了WebClient中使用post发送数据实现方法. 下面先说说WebClient 最主要的功能. WebClient 构造函数 .Ctor 包括 一个空构造函数 和一个静态构造函数, 静态构造函数主要为UrlEncode 和UrlEncodeAndWirte 编码提供参照by

  • C# Winform中实现主窗口打开登录窗口关闭的方法

    在使用C#进行Winform编程时,我们经常需要使用一个登录框来进行登录,一旦输入的用户名密码登录成功,这时登录窗口应该关闭,而且同时打开主程序窗口.该如何来实现呢? 乍一想,很简单啊,打开主窗口就用主窗口的Show()方法,而关闭登录窗口就用登录窗口的Close()方法即可.即代码如下: Program.cs中代码: 复制代码 代码如下: Application.Run(new FormLogin()); 登录窗口(FormLogin)代码: 复制代码 代码如下: private void b

  • asp.net c#采集需要登录页面的实现原理及代码

    首先说明:代码片段是从网络获取,然后自己修改.我想好的东西应该拿来分享. 实现原理:当我们采集页面的时候,如果被采集的网站需要登录才能采集.不管是基于Cookie还是基于Session,我们都会首先发送一个Http请求头,这个Http请求头里面就包含了网站需要的Cookie信息.当网站接收到发送过来的Http请求头时,会从Http请求头获取相关的Cookie或者Session信息,然后由程序来处理,决定你是否有权限访问当前页面. 好了,原理搞清楚了,就好办了.我们所要做的仅仅是在采集的时候(或者

  • C#实现的三种模拟自动登录和提交POST信息的方法

    本文实例讲述了C#实现的三种模拟自动登录和提交POST信息的方法.分享给大家供大家参考,具体如下: 网页自动登录(提交Post内容)的用途很多,如验证身份.程序升级.网络投票等,以下是用C#实现的方法. 网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser.WebClient.HttpWebRequest这三个.以下就分别用这三种方法来实现: 1.WebBrowser是个"迷你"浏览器,其特点

  • C#实现12306自动登录的方法

    依然使用IE9的捕获参数,做了一个12306的登录功能.参照了网上童鞋们的做法. 其他都和前面几篇读取余票.票价一样,不过登录要用到证书的问题,这个参考了一个网上的例子. 不过12306会随时变化,下面的登录不一定一直都能成功.如果12306有变化,大家可以根据变化对代码做修改.总之使用的方法不变,就是捕获参数和url,然后自己补充参数. 效果如下: 项目名称:Test12306AutoLogin: 环境:.net 4.0,Visual studio 2010: 项目图: 核心代码如下, 信任证

  • C#使用post发送和接收数据的方法

    本文实例讲述了C#使用post发送和接收数据的方法.分享给大家供大家参考.具体实现方法如下: public partial class Post_Server : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string type = ""; string Re = ""; Re += "数据传送方式:"; if (Request.Requ

  • Java Socket通信(一)之客户端程序 发送和接收数据

    网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据. 对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容.Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容. 例1:客户端的简略写法(一). Socket clien

  • Python udp网络程序实现发送、接收数据功能示例

    本文实例讲述了Python udp网络程序实现发送.接收数据功能.分享给大家供大家参考,具体如下: 1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8 from socket import * # 1. 创建udp套接字 udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 准备接收方的地址 # '192.168.1.103'表示目的ip

  • python 如何用urllib与服务端交互(发送和接收数据)

    urllib是Python3中内置的HTTP请求库,不需要单独安装,官方文档链接如下:https://docs.python.org/3/library/urllib.html从官方文档可以看出,urllib包含4个模块,如图所示. 这4个模块的功能描述如下: request:最基本的HTTP请求模块,可以用来发送HTTP请求,并接收服务端的响应数据.这个过程就像在浏览器地址栏输入URL,然后按Enter键一样. error:异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后根据实际情况

  • vue项目嵌套iframe实现发送、接收数据

    目录 vue嵌套iframe发送.接收数据 vue中iframe的使用 获取iframe里面的内容 CDM跨域 vue嵌套iframe发送.接收数据 <template>     <div class="home">         <iframe src="http://127.0.0.1:8888/index.html" class="mapFrame" ref="mapFrame">&

  • 从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例

    本文实例讲述了Node.js EventEmitter发送和接收事件的方法.分享给大家供大家参考,具体如下: pulser.js /* EventEmitter发送和接收事件 HTTPServer和HTTPClient类,它们都继承自EventEmitter EventEmitter被定义在Node的事件(events)模块中,直接使用EventEmitter类需要先声明require('events'), 否则不必显式声明require('events'),因为Node中很多对象都无需你调用r

  • Android实现TCP客户端接收数据的方法

    本文实例讲述了Android实现TCP客户端接收数据的方法.分享给大家供大家参考,具体如下: 配合log4net使用,用来接收调试信息.因此,此客户端只管通过TCP接收字符串数据,然后显示在界面上. 接收TCP数据 try { Socket s = new Socket("192.168.1.5", 8240); InputStream inputStream = s.getInputStream(); DataInputStream input = new DataInputStre

  • C#使用Socket实现发送和接收图片的方法

    本文实例讲述了C#使用Socket实现发送和接收图片的方法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Net; using System.IO; namespace ConsoleApplication1 { Class Program { static void Main (String[]

  • Python实现发送与接收邮件的方法详解

    本文实例讲述了Python实现发送与接收邮件的方法.分享给大家供大家参考,具体如下: 一.发送邮件 这里实现给网易邮箱发送邮件功能: import smtplib import tkinter class Window: def __init__(self,root): label1 = tkinter.Label(root,text='SMTP') label2 = tkinter.Label(root,text='Port') label3 = tkinter.Label(root,text

  • C#请求http向网页发送接收数据的方法

    本文实例为大家分享了C#请求http向网页发送数据.网页接收,供大家参考,具体内容如下 首先,我们需要的是什么东西? 用POST方式请求http,给网页传输数据,网页接收到数据之后,把数据存储到数据库中. 1.首先请求http,建立连接,把转码过的数据传输过去 2.网页接收数据,在转码之后存储到数据库 3.网页返回一个东西给传输方,表示我们已经接收到数据了 同样,我们请求http也是用的控制台模拟的 static void Main(string[] args) { string result

随机推荐