本文转自:http://www.cnblogs.com/pzstudyhard/p/4805885.html

using System.Data;

  • using System.Net;
  • using System.IO;
  • using System.Net.Http;
  • using System.Web;
  • using System.Collections.Specialized;
  • using System.Web.Script.Serialization;
  • using System.Collections;
  • public string ToPackageJson(DataTable dt) //封装Json
  • {
  • Dictionary<string, string> dic1 = new Dictionary<string, string>();
  • foreach (DataRow dr in dt.Rows)
  • {
  • foreach (DataColumn dc in dt.Columns)
  • {
  • dic1.Add(dc.ColumnName, dr[dc.ColumnName].ToString());
  • }
  • }
  • Dictionary<string, object> dic2 = new Dictionary<string, object>();
  • dic2.Add(dt.TableName, dic1);
  • JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  • javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
  • return javaScriptSerializer.Serialize(dic2); //返回一个json字符串  {"dt.TableName":{"列名1":"列值1","列名2":"列值2","列名n":"列值n"}}
  • }
  • public string ToPost(string postURL,string NTLM_UserName,string NTML_PassWord,DataTable dtToPost)
  •   {
  •     //封装Json
  •  string strJson = ToPackageJson(dtToPost);
  • //通过NTLM验证
  •     //1、创建空白的网站证书缓存
  • System.Net.CredentialCache MyCredentialCache = new System.Net.CredentialCache();
  •     //指定以b2c用户通过NTLM身份验证
  • MyCredentialCache.Add(new System.Uri(postURL), "NTLM", new System.Net.NetworkCredential(NTLM_UserName, NTML_PassWord));
  • HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(postURL);
  • httpWebRequest.Credentials = MyCredentialCache;
  • httpWebRequest.Method = "POST";
  • httpWebRequest.ContentType = "application/json;charset=UTF-8";
  • //将Json字符串转化为字节
  • byte[] postDataByte = Encoding.UTF8.GetBytes(strJson);
  • httpWebRequest.ContentLength = postDataByte.Length;
  • httpWebRequest.AllowAutoRedirect = false;
  • httpWebRequest.KeepAlive = true;
  • httpWebRequest.ContentLength = postDataByte.Length;
  • //获取用于写入请求数据的Stream对象
  • Stream writer = httpWebRequest.GetRequestStream();
  • //将请求参数写入流
  • writer.Write(postDataByte, 0, postDataByte.Length);
  • //关闭请求流
  • writer.Close();
  • //http响应所返回的字符流
  • string responseResult = "";
  • HttpWebResponse response = null;
  • try
  • {
  • //获取http返回的响应流
  • response = (HttpWebResponse)httpWebRequest.GetResponse();
  • }
  • catch (WebException ex)
  • {
  •       response = (HttpWebResponse)ex.Response;
  • }
  • //读取响应流内容
  • StreamReader sr = new StreamReader(response.GetResponseStream());
  • responseResult = sr.ReadToEnd();
  • //关闭读取器
  • sr.Close();
  • return responseResult;
  • }

[转]Web后台模拟前端post(带NTLM验证)的更多相关文章

  1. Web后台模拟前端post(带NTLM验证)

    using System.Data; using System.Net; using System.IO; using System.Net.Http; using System.Web; using ...

  2. web的前台、后台、前端、后端

    前台:呈现给用户的视觉和基本的操作.后台:用户浏览网页时,我们看不见的后台数据跑动.后台包括前端,后端.前端:对应我们写的html .javascript 等网页语言作用在前端网页.后端:对应jsp. ...

  3. 腾讯Web工程师的前端书单

    2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指 ...

  4. Web后台快速开发框架(.NET Core)

    Web后台快速开发框架(.NET Core) Coldairarrow 目录 目录 第1章    目录    1 第2章    简介    3 第3章    基础准备    4 3.1    开发环境 ...

  5. Web后台快速开发框架

    Web后台快速开发框架 Coldairarrow 目录 目录 第1章    目录    1 第2章    简介    3 第3章    基础准备    4 3.1    开发环境要求    4 3.2 ...

  6. Web暴力破解--前端JS表单加密进行爆破

    0x01 前言 常见的js实现加密的方式有:md5.base64.shal,写了一个简单的demo作为测试. 0x02 代码 login.html <!DOCTYPE HTML> < ...

  7. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  8. 推荐一份Web 工程师的前端书单

    014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指南 ...

  9. java后台对前端输入的特殊字符进行转义

    转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...

随机推荐

  1. SQL Server 数据库的分类和用户数据库文件组成

      数据库的分类       数据库分为两大类,一类是系统数据库:另一类是用户数据库,系统数据库我们一般使用的时候较少, 下面我们看看系统数据库包含哪些并分别有什么作用,如下图所示 用户数据库文件组成 ...

  2. 设置TeeChart的提示文本

    使用第三方Steema的TeeChart控件,设置鼠标放在某一线条点上,显示某一点的数据标签问题(虚线型十字光标基准线,放在线上显示对应点的二维坐标轴数据数据),调用InitTeeChartTipTo ...

  3. c#设计模式之装饰器模式(Decorator Pattern)

    引子 在面向对象语言中,我们常常会听到这样一句话:组合优于继承.那么该如何去理解这句话呢? 下面我将以游戏装备为模型用简单的代码去展示它 先创建一个装备的抽象类,然后创建刀枪2个具体的业务子类 pub ...

  4. JQuery对象函数

    1.JQuery对象函数写法格式 简单示例: main代表对象名,main.roleName = (function () { return $('#RoleName').val();})();表示为 ...

  5. Programmatically Disable Event Firing on List Item Update in SharePoint 2010

    1. Microsoft.SharePoint.dll Create EventFiring.cs 1.Right-click on the project, select Add and click ...

  6. 不用外部插件启用u盘ntfs写功能

    mac下启用NTFS u盘读写功能. 不用要任何外部插件,其实mac本来就支持,只是因为专利原因隐藏了而已. macbook:~ uwe$ sudo umount /Volumes/UNTITLED ...

  7. Java50道经典习题-程序14 求日期

    题目:输入某年某月某日,判断这一天是这一年的第几天?分析:(1)以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天 (2)特殊情况,闰年2月份的天数是29天,否则是28天 impo ...

  8. K - 欧拉回路(并查集)

    点击打开链接 K - 欧拉回路 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input 测试输入包含若干测试用例.每个测试用例的第 ...

  9. ubuntu下apache2使用的简单总结

        一. 修改apache2原80端口为90端口 1. 修改/etc/apache2/ports.conf, 将端口80改为90,443,改为444 2. 修改/etc/apache2/sites ...

  10. OO第二单元の小结

    第二单元(线程与电梯问题)总结博客 三次作业的设计策略 第一次:本次作业只有一部电梯,而且不用捎带.因此,我一共设计了两个线程:一个负责管理输入,一个负责电梯运行.同时,我将调度队列设置为单例模式,里 ...