[转]Web后台模拟前端post(带NTLM验证)
本文转自: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验证)的更多相关文章
- Web后台模拟前端post(带NTLM验证)
using System.Data; using System.Net; using System.IO; using System.Net.Http; using System.Web; using ...
- web的前台、后台、前端、后端
前台:呈现给用户的视觉和基本的操作.后台:用户浏览网页时,我们看不见的后台数据跑动.后台包括前端,后端.前端:对应我们写的html .javascript 等网页语言作用在前端网页.后端:对应jsp. ...
- 腾讯Web工程师的前端书单
2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指 ...
- Web后台快速开发框架(.NET Core)
Web后台快速开发框架(.NET Core) Coldairarrow 目录 目录 第1章 目录 1 第2章 简介 3 第3章 基础准备 4 3.1 开发环境 ...
- Web后台快速开发框架
Web后台快速开发框架 Coldairarrow 目录 目录 第1章 目录 1 第2章 简介 3 第3章 基础准备 4 3.1 开发环境要求 4 3.2 ...
- Web暴力破解--前端JS表单加密进行爆破
0x01 前言 常见的js实现加密的方式有:md5.base64.shal,写了一个简单的demo作为测试. 0x02 代码 login.html <!DOCTYPE HTML> < ...
- .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 ...
- 推荐一份Web 工程师的前端书单
014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍. JavaScript 入门 <JavaScript权威指南 ...
- java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...
随机推荐
- c#设计模式之观察者模式(Observer Pattern)
场景出发 一个月高风黑的晚上,突然传来了尖锐的猫叫,宁静被彻底打破,狗开始吠了,大人醒了,婴儿哭了,小偷跑了 这个过程,如果用面向对象语言来描述,简单莫过于下: public class Cat { ...
- 为什么JavaScript要有null?(翻译)
原文地址 JavaScript有不少怪癖和难以理解的地方.其中null& undefined就比较有意思.既然有了为什么JavaScript还要弄一个null? 相等比较 让我们开始由具有看看 ...
- win32拖拽编程
本文由作者邹启文授权网易云社区发布. 在邮箱大师PC版中,我们需要实现一个功能:账号和邮件夹拖拽排序. 准备 封装win32 API.我们使用到的API有, ImageList_Create.Imag ...
- django系列7.2--django中的cookie和session基本操作,浏览器登陆验证的不同实现
django中的cookie和session(02)–操作 一.Django中的cookie操作 ctrl + shift + del 是谷歌浏览器中清除页面缓存和cookie的快捷键 1.设置coo ...
- 微信小店调用api代码示例
刚开始调用微信小店api的时候,可能大家会遇到问题.系统总是提示system error,归根结底还是发送的参数不正确. 下面给出几个调用例子: 例子写得不全. <?php function c ...
- JavaWeb -pageContext/request/session/application
pageContext/request/session/application总结 一.范围差异 1. pageContext jsp页面容器 当前页面有效 2. request 请求对象 同一次请求 ...
- 【OCP认证12c题库】CUUG 071题库考试原题及答案(26)
26.choose two Examine the structure of the PRODUCTS table. Which two statements are true? A) EXPIRY_ ...
- JavaScript多个h5播放器video,点击一个播放其他暂停
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- button不能添加伪类元素
今日试了一下button添加伪类元素,结果是不行的前后都叠加在一起 html代码: <button class="form_btn" formType="submi ...
- 高可用群集HA介绍与LVS+keepalived高可用群集
一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅 ...