zoukankan
html css js c++ java
(论坛答疑点滴)如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证
using
System;
using
System.Net;
using
System.IO;
using
System.Text;
[STAThread]
static
void
Main(
string
[] args)
{
//
//
TODO: 在此处添加代码以启动应用程序
//
string
url
=
"
http://localhost/csdn2/1.asp
"
;
//
<%
//
if request("aa")="zhuye" then session("ok")="ok"
//
if session("ok")="ok" then
//
response.write("登录")
//
else
//
response.write("没有登录")
//
end if
//
%>
string
indata
=
"
aa=zhuye
"
;
string
outdata
=
""
;
CookieContainer myCookieContainer
=
new
CookieContainer();
//
新建一个CookieContainer来存放Cookie集合
HttpWebRequest myHttpWebRequest
=
(HttpWebRequest)WebRequest.Create(url);
//
新建一个HttpWebRequest
myHttpWebRequest.ContentType
=
"
application/x-www-form-urlencoded
"
;
myHttpWebRequest.ContentLength
=
indata.Length;
myHttpWebRequest.Method
=
"
POST
"
;
myHttpWebRequest.CookieContainer
=
myCookieContainer;
//
设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer
Stream myRequestStream
=
myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter
=
new
StreamWriter(myRequestStream,Encoding.GetEncoding(
"
gb2312
"
));
myStreamWriter.Write(indata);
//
把数据写入HttpWebRequest的Request流
myStreamWriter.Close();
myRequestStream.Close();
//
关闭打开对象
HttpWebResponse myHttpWebResponse
=
(HttpWebResponse)myHttpWebRequest.GetResponse();
//
新建一个HttpWebResponse
myHttpWebResponse.Cookies
=
myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
//
获取一个包含url的Cookie集合的CookieCollection
Stream myResponseStream
=
myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader
=
new
StreamReader(myResponseStream,Encoding.GetEncoding(
"
gb2312
"
));
outdata
=
myStreamReader.ReadToEnd();
//
把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();
Console.WriteLine(outdata);
//
显示"登录"
//
拿到了Cookie,再进行请求就能直接读取到登录后的内容了
myHttpWebRequest
=
(HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer
=
myCookieContainer;
//
*
//
刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
myHttpWebResponse
=
(HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies
=
myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
myResponseStream
=
myHttpWebResponse.GetResponseStream();
myStreamReader
=
new
StreamReader(myResponseStream,Encoding.GetEncoding(
"
gb2312
"
));
outdata
=
myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
Console.WriteLine(outdata);
//
再次显示"登录"
//
如果把*行注释调,就显示"没有登录"
}
注释写得很明确了,不多罗嗦了。
补充:如果是以get方式登录的话,直接修改url就可以了,indate可以不写任何东西。(不要去修改myHttpWebRequest.Method为GET),比如把asp文件修改为if request.querystring("aa")="zhuye" then session("ok")="ok",只要修改url为string url="http://localhost/csdn2/1.asp?aa=zhuye";即可。
欢迎大家阅读我的极客时间专栏
《Java业务开发常见错误100例》
【全面避坑+最佳实践=健壮代码】
查看全文
相关阅读:
vue-router query和params参数的区别
vue打包成app后,背景图片不显示
vue打包成app后,点击手机上的物理返回按钮后直接退出app
Echarts dataZoom 区域缩放
CSS3 实现别样图型
Echarts 不能百分比显示或显示有问题
循环(数组循环、获取json数据循环)、each()循环详解
页面数据加载完成时,显示loading页面.数据加载完,loading隐藏.
获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题)
移动端rem布局,用户调整手机字体大小或浏览器字体大小后导致页面布局出错问题
原文地址:https://www.cnblogs.com/lovecherry/p/143341.html
最新文章
POJ 3130 How I Mathematician Wonder What You Are!(半平面交求多边形的核)
POJ 3335 Rotating Scoreboard(半平面交求多边形核)
POJ 1947 Rebuilding Roads(树形DP)
xslfo和fop使用中的一些问题
itextsharp报错PdfReader not opened with owner password
XCode9和10编译Cordova报错toLowerCase of undefined解决方案
MacOs 安装cordova报无权访问题解决方案
Cordova编译报AAPT错误的解决方法
js带“.”的对象属性名怎么使用
Cordova使用极光推送的方法
热门文章
MySql5.7 Distinct与Order By同时使用报错的解决方案
angularJs绑定select的正确姿势
Oracle使用exp和imp导出、导入数据
ant design vue 时间选择器只能到最大日期
vsCode--设置显示文件和搜索过滤
ant design for vue 解决 vue.esm.js?c5de:628 [Vue warn]: Invalid prop: custom validator check failed for prop "defaultValue". 的错误
ant design for vue 上传文件
vue 利用axios请求接口下载excel
正则表达式(2)
vue axios从服务器加载图片并显示
Copyright © 2011-2022 走看看