向post请求中写入数据,最终保存在了HttpWebRequest.Params中

 一、向post请求中写入数据,最终保存在了HttpWebRequest.Params中:

  1)如果存入的是IDictionary类型的字符串变量,如:“username=administrator”,则key=value;

  2)如果写入的是string类型的变量,如"username",则key=null,value=username;

     protected void btnLogin_Click(object sender, EventArgs e)
        {

            string Url = "http://localhost:18472/DataRequest.aspx";
            string contentType = "application/x-www-form-urlencoded";
            string username = "administrator";
            string password = "admin";
            IDictionary<string,string> param=new Dictionary<string,string>();
            param.Add("username",username);
            param.Add("password",password);
            int i = 0;
            StringBuilder sb=new StringBuilder();
            foreach (var key in param.Keys)
            {
                if (i>0)
                {
                    sb.AppendFormat("&{0}={1}", key, param[key]);
                }
                else
                {
                    sb.AppendFormat("{0}={1}", key, param[key]);
                }
                i++;
            }
            //string content = SendPost(sb.ToString(),Url,contentType);
            string content = SendPost(username,Url,contentType);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="data">写入流中的数据,最后将保存在request.params中,是Idictionary类型的变量;如果是没有等号的string类型,key=null,value=string</param>
        /// <param name="url">请求的url</param>
        /// <param name="contentType">请求的内容类型</param>
        /// <returns></returns>
        public static string SendPost(string data, string url, string contentType)
        {
            string content = string.Empty;
            HttpWebRequest httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
            httpWebRequest.AllowAutoRedirect = true;
            httpWebRequest.Method = "POST";
            httpWebRequest.ContentType = contentType;
            using (StreamWriter sw = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                sw.Write(data);
            }
            HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
            using (StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream(), System.Text.Encoding.Default))
            {
                content = sr.ReadToEnd();
            }
            //httpWebRequest.EndGetResponse;
            return content;
        }

二、从request中取出写入的data数据(比如:xml等)的另一种方法:从流中获取(仅一次)

       string content="";
    using (Stream stream = HttpContext.Current.Request.InputStream)
       {
           using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
           {
                content=sr.ReadToEnd();
           }
       }                    

三、实现数据在IHttpModule和IHttpHandler之间(process项目和web项目之间)数据的组织和共享的键/值集合,保存在context.Items中

string XML=content;HttpContext context=HttpContext.Current;context.Items.Add("XML", XML); 

四、从Items集合中取出数据

string XML=context.Items["XML"].ToString();
时间: 2024-12-13 10:56:25

向post请求中写入数据,最终保存在了HttpWebRequest.Params中的相关文章

【转】从QDataStream向QByteArray中写入数据时的注意点(QT)

最近发现从QDataStream向QByteArray中写入数据常常是写不进去的,通过查看QT的源码: QDataStream &operator>>(QDataStream &in, QByteArray &ba){ ba.clear(); quint32 len; in >> len; if (len == 0xffffffff) return in; const quint32 Step = 1024 * 1024; quint32 allocated

计算机二级-C语言-程序填空题-190117记录-对文件的处理,复制两个文件,往新文件中写入数据。

//给定程序的功能是,调用函数fun将指定源文件中的内容赋值到指定目标文件中,复制成功时函数返回1,失败时返回0,把复制的内容输出到终端屏幕.主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中. //重难点:对文件的处理.如何判断文件是否达到末尾,如何往文件中写入数据. 1 #include <stdio.h> 2 #include <stdlib.h> 3 int fun(char *source, char *target) 4 { FILE *fs,*f

POI向Excel中写入数据及追加数据

import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.ArrayList; import java.

Python向excel中写入数据的方法 方法简单

最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 pip install xlwt ,如果电脑中安装过就不需要重复安装. 接下来就做一个简单的demo ,把三行数据添加到excel中. 具体代码如下: #!/usr/bin/env python # coding=utf-8 from xlwt import * #需要xlwt库的支持 #import

java实现赋值excel模板,并在新文件中写入数据,并且下载

/** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new File("d:/ss.xls"); //新文件写入数据,并下载***************************************************** InputStream is = null; HSSFWorkbook workbook = null; HSSFSh

lua向文件中写入数据,进行记录

function readfile(path) local file = io.open(path, "r") if file then local content = file:read("*a") io.close(file) return content end return nil end function writefile(path, content, mode) mode = mode or "w+b" local file = i

往Android SDCard中写入数据

一.用Environment 1.API获取sdcard的路径 File path=Environment.getExternalStorageDirectory(); path=new File(path,"test.txt"); 2.用流写入内容 3.获取WRITE_EXTERNAL_STORAGE权限 二.获取shared_prefs目录,写xml 1.获取SharedPreferences SharedPreferences shared =this.getSharedPref

第十六章,向txt文件中写入数据(C++)

#include <iostream> #include <fstream> int main(int argc, char** argv) { //app是追加的意思,append //盘符后面一定是双斜杠 \\ //没有这个文件,会自动创建 std::ofstream outfile("e:\\123.txt",std::ios::app); if(outfile.is_open()){ outfile<<"ccccc"; /

python往mysql数据库中写入数据和更新插入数据

本文链接:https://blog.csdn.net/Mr__lqy/article/details/85719603 1. 连接mysql import pymysql db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spiders') cursor = db.cursor() sql = 'select * from students;' cursor.execute(