搜档网
当前位置:搜档网 › 模拟登陆

模拟登陆

模拟登陆
模拟登陆

httpwebrequest 模拟登录获取cookies

2个类,一个基类,一个构建头信息调用类

关于如何获取到post中的内容,你之需要用http抓包工具把你与目标网站的请求信息抓下来后,打开分析下按照抓下来的包中的数

据进行构建就行了

using System;

using System.Collections.Generic;

using System.Text;

using https://www.sodocs.net/doc/1812531016.html,;

using System.IO;

namespace bot

{

public class Html

{

///

/// httpwebrequest类中的一些属性的集合

///

public struct RequestPPT

{

private string strAccept;

///

/// 获取或设置request类中的Accept属性

/// 用以设置接受的文件类型

///

public string Accept

{

get

{

return strAccept;

}

set

{

strAccept = value;

}

}

private string strContentType;

///

/// 获取或设置request类中的ContentType属性

/// 用以设置请求的媒体类型

///

public string ContentType

{

get

{

return strContentType;

}

set

{

strContentType = value;

}

}

///

/// 获取或设置request类中的UserAgent属性

/// 用以设置请求的客户端信息

///

private string strUserAgent;

public string UserAgent

{

get

{

return strUserAgent;

}

set

{

strUserAgent = value;

}

}

private string strMethod;

///

/// 获取或设置request类中的Method属性

/// 可以将Method 属性设置为任何HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或OPTIONS。

/// 如果ContentLength 属性被设置为-1 以外的任何值,则必须将Method 属性设置为上载数据的协议属性。

///

public string Method

{

get

{

return strMethod;

}

set

{

strMethod = value;

}

}

}

///

/// 构建一个httt请求以获取目标链接的cookies,需要传入目标的登录地址和相关的post信息,返回完成登录的cookies,以及返回的html内容

///

/// 登录页面的地址

/// post信息

/// 输出的html代码

/// 请求的标头所需要的相关属性设置

/// 请求完成后的cookies

public CookieCollection funGetCookie(string url, byte[] post, out string strHtml, RequestPPT rppt,string server)

{

CookieCollection ckclReturn = new CookieCollection();

CookieContainer cc = new CookieContainer();

HttpWebRequest hwRequest;

HttpWebResponse hwResponse;

//请求cookies的格式

//hwRequest = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));

//hwResponse = (HttpWebResponse)hwRequest.GetResponse();

//string cookie = hwResponse.Headers.Get("Set-Cookie");

//cookie = cookie.Split(';')[0];

//hwRequest = null;

//hwResponse = null;

//构建即将发送的包头

//cc.SetCookies(new Uri(server), cookie);

hwRequest = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));

hwRequest.CookieContainer = cc;

hwRequest.Accept = rppt.Accept;

hwRequest.ContentType = rppt.ContentType;

https://www.sodocs.net/doc/1812531016.html,erAgent = https://www.sodocs.net/doc/1812531016.html,erAgent;

hwRequest.Method = rppt.Method;

hwRequest.ContentLength = post.Length;

//写入标头

Stream stream;

stream = hwRequest.GetRequestStream();

stream.Write(post, 0, post.Length);

stream.Close();

//发送请求获取响应内容

try

{

hwResponse = (HttpWebResponse)hwRequest.GetResponse();

}

catch

{

strHtml = "";

return ckclReturn;

}

stream = hwResponse.GetResponseStream();

StreamReader sReader = new StreamReader(stream, Encoding.Default);

strHtml = sReader.ReadToEnd();

sReader.Close();

stream.Close();

//获取缓存内容

ckclReturn = hwResponse.Cookies;

return ckclReturn;

}

///

/// 根据已经获取的有效cookies来获取目标链接的内容

///

/// 目标链接的url

/// 已经获取到的有效cookies

/// 头属性的相关设置

/// 目标连接的纯文本:"txt/html"

public string funGetHtmlByCookies(string strUri, CookieCollection ccl, RequestPPT rppt) {

CookieContainer cc = new CookieContainer();

HttpWebRequest hwRequest;

HttpWebResponse hwResponse;

//构建即将发送的包头

hwRequest = (HttpWebRequest)HttpWebRequest.Create(new Uri(strUri));

cc.Add(ccl);

hwRequest.CookieContainer = cc;

hwRequest.Accept = rppt.Accept;

hwRequest.ContentType = rppt.ContentType;

https://www.sodocs.net/doc/1812531016.html,erAgent = https://www.sodocs.net/doc/1812531016.html,erAgent;

hwRequest.Method = rppt.Method;

hwRequest.ContentLength = 0;

//发送请求获取响应内容

try

{

hwResponse = (HttpWebResponse)hwRequest.GetResponse();

}

catch

{

return "";

}

Stream stream;

stream = hwResponse.GetResponseStream();

StreamReader sReader = new StreamReader(stream, Encoding.Default);

string strHtml = sReader.ReadToEnd();

sReader.Close();

stream.Close();

//返回值

return strHtml;

}

///

/// 根据已经获取的有效cookies来获取目标链接的内容

///

/// 目标链接的url

///post的byte信息

/// 已经获取到的有效cookies

/// 头属性的相关设置

/// 目标连接的纯文本:"txt/html"

public string funGetHtmlByCookies(string strUri,byte[] post, CookieCollection ccl, RequestPPT rppt)

{

CookieContainer cc = new CookieContainer();

HttpWebRequest hwRequest;

HttpWebResponse hwResponse;

//构建即将发送的包头

hwRequest = (HttpWebRequest)HttpWebRequest.Create(new Uri(strUri));

cc.Add(ccl);

hwRequest.CookieContainer = cc;

hwRequest.Accept = rppt.Accept;

hwRequest.ContentType = rppt.ContentType;

https://www.sodocs.net/doc/1812531016.html,erAgent = https://www.sodocs.net/doc/1812531016.html,erAgent;

hwRequest.Method = rppt.Method;

hwRequest.ContentLength = post.Length;

//写入post信息

Stream stream;

stream = hwRequest.GetRequestStream();

stream.Write(post, 0, post.Length);

stream.Close();

//发送请求获取响应内容

try

{

hwResponse = (HttpWebResponse)hwRequest.GetResponse();

}

catch

{

return"" ;

}

stream = hwResponse.GetResponseStream();

StreamReader sReader = new StreamReader(stream, Encoding.Default);

string strHtml = sReader.ReadToEnd();

sReader.Close();

stream.Close();

//返回值

return strHtml;

}

}

} 第二个using System;

using System.IO;

using System.Collections.Generic;

using System.Text;

using https://www.sodocs.net/doc/1812531016.html,;

using System.Data;

using System.Xml;

using System.Text.RegularExpressions;

namespace bot

{

public class SisHtml :Html

{

public SisHtml()

{

}

///

/// 设置主机ip地址

///

public string Host

{

get {

return strHost;

}

set {

strHost = value;

}

}

private string strHost;

///

/// 获取目标登录链接的cookies

///

/// 目标的登录链接

/// 构造头的泛型键值对

/// 登录后返回的页面内容

/// 登录后的cookies

public CookieCollection funGetCookie(string url, Dictionary dir, out string strHtml)

{

CookieCollection cc = new CookieCollection();

RequestPPT rppt = new RequestPPT();

//构建post内容

string strPost = funMakePost(dir);

byte[] post = Encoding.Default.GetBytes(strPost);

//设置标头属性

rppt.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";

rppt.ContentType = "application/x-www-form-urlencoded";

rppt.Method = "Post";

https://www.sodocs.net/doc/1812531016.html,erAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

string server ="http://"+ new Uri(url).Host;

return cc = base.funGetCookie(url, post, out strHtml, rppt, server);

}

///

/// 根据已经获取到cookies来获取目标链接的内容

///

/// 目标的url

/// 已经获取好的cookies

/// 目标url的纯文本:"txt/html"

public string funGetHtmlByCookies(string strUri,CookieCollection ccl )

{

RequestPPT rppt = new RequestPPT();

//设置头属性

rppt.Accept = "txt/html";

rppt.ContentType = "application/x-www-form-urlencoded";

rppt.Method = "Post";

https://www.sodocs.net/doc/1812531016.html,erAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

return base.funGetHtmlByCookies(strUri, ccl, rppt);

}

///

/// 投票帖子用的方法

///

/// 投票帖子的htmlcode

/// 有效的cookies

/// 投票完成以后的htmlcode

public string funVote(string strHtml,CookieCollection ccl)

{

//判断是不是选取投票

try

{

strHtml = strHtml.Substring(strHtml.IndexOf("") - strHtml.IndexOf("

}

catch

{

return "";

}

string strCheck = @"name=""pollanswers[]""";

//如果代码中包含关键信息说明没有被投票过

if(strHtml.IndexOf(strCheck)>0)

{

//获取post头的需求信息

string strFormHash = "77b49df4";

string strPollanswers;

strPollanswers = strHtml.Substring(strHtml.IndexOf(strCheck)+strCheck.Length, 20).Split('"')[1];

string strPollansubmit = "提交";

Dictionarydir = new Dictionary();

dir.Add("formhash",strFormHash);

dir.Add("pollanswers[]",strPollanswers);

dir.Add("pollsubmit",strPollansubmit);

string strPost = funMakePost(dir);

byte[] post = Encoding.Default.GetBytes(strPost);

//获取请求的路径

string strUrl= "http://"+Host+"/bbs/";

string strActionUrl =@"method=""post""";

strUrl+=

strHtml.Substring(strHtml.IndexOf(strActionUrl)+strActionUrl.Length,100).Split('"')[1].Replace("a mp;","");

//构建头

RequestPPT rppt = new RequestPPT();

rppt.Accept = "txt/html";

rppt.ContentType = "application/x-www-form-urlencoded";

rppt.Method = "Post";

https://www.sodocs.net/doc/1812531016.html,erAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

strHtml = base.funGetHtmlByCookies(strUrl, post, ccl, rppt);

}

return strHtml;

}

///

/// 根据泛型来构建字符串用于post

///

/// 带有键值对的泛型

/// 构建完毕的字符串

private string funMakePost(Dictionary dir)

{

string strPost="";

foreach (KeyValuePair kvp in dir)

{

strPost += kvp.Key + "=";

if (kvp.Value == "")

{

strPost += "''";

}

else

{

strPost += kvp.Value;

}

strPost += "&";

}

strPost = strPost.Substring(0, strPost.Length - 1);

return strPost;

}

///

/// 获取下一个列表页面的路径

///

/// 当前页面的htmlcode

/// 下一个列表页面的路径

public string funGetNextUrl(string strHtml)

{

string strUrl = "";

//判断是否是列表型页面

if (strHtml.IndexOf("

{

return strUrl;

}

string strKey =@"class=""next""";

strUrl = "http://"+Host+"/bbs/"+strHtml.Substring(strHtml.IndexOf(strKey) - 100, 100).Split('"')[1].Replace("amp;", "");

return strUrl;

}

public DataT able funGetListTable(string strHtml)

{

DataTable dt = new DataT able();

DataColumn dc = new DataColumn("Url");

dt.Columns.Add(dc);

DataRow dr ;

string strReg = @"viewthread.php(\S)+highlight=";

Regex rg = new Regex(strReg);

MatchCollection mc = rg.Matches(strHtml);

foreach (Match ms in mc)

{

dr = dt.NewRow();

dr[0] = "http://" + Host + "/bbs/" + ms.ToString().Replace("amp;", "");

dt.Rows.Add(dr);

}

return dt;

}

}

}

本文来自CSDN博客,转载请标明出处:https://www.sodocs.net/doc/1812531016.html,/atlasroben/archive/2008/07/29/2729958.aspx

黑马程序员安卓教程:模拟一个登录服务器

模拟一个登录服务器 Android手机之所以能够迅速风靡,主要是因为Android手机能够3G,4G无线上网,随时随地访互联网信息。在Android的开发过程中,我们常常会接触到网络编程,如网络请求浏览网页,浏览图片,查看新闻等。下面我们通过一个案例来讲述网络编程的编写。 业务场景:登录QQ时,我们首先会向腾讯的服务器提交用户名和密码;服务器会解析收到的用户名和密码,然后查看数据库中是否存在当前用户,若存在该用户则允许登录,若不存在该用户则不允许登录操作。这一过程可以通过图1-1来表示: 手机客户端 图1-1所示 实现图1-1所示的业务场景我们需要编写一个java web项目,用来模拟腾讯的账号服务器。具体操作如下: ●打开j2ee eclipse,新建一个web工程: 【File】→【new】→【Dynamic Web Project】弹出图1-2所示面板:

web web项目的运行时环 境, 点击new一个运行时环 境,选择一个tomcat并 指定该tomcat容器的路 径 图1-2所示 新建工程完成之后,得到的结构目录如下图1-3所示:

编写Java代码 图1-3所示●在src目录下新建一个servlet: 【new】→【servlet】弹出图1-4所示面板:

名称 图1-4所示 ●点击图1-4的“finish”按钮则自动生成图1-5所示的结构目录: 图1-5所示 ●编写LoginServlet类,如例1-1所示 例1-1 LoginServlet.class

public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } 自动生成的LoginServlet类中有两个关键的方法,分别用来接收get请求和post请求,我们只需要实现其中的一个方法即可,并在另一个方法中调用该方法。本例中我们实现doGet方法,具体代码如下例1-2所示: 例1-2 doGet方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username");//获取客户端传递的用户名 String password = request.getParameter("password");//获取客户端传递的密码 System.out.println("用户名:"+username); System.out.println("密码:"+username); //模拟查询数据库操作,此处替代JDBC的功能代码 if("zhangsan".equals(username)&&"123".equals(password)){ response.getOutputStream().write("login success".getBytes()); }else{ response.getOutputStream().write("login failed".getBytes()); } } 例1-2用来模拟腾讯的服务器,服务端接收客户端传来的参数,当客户端传递过来的用户名是“zhangsan”,密码是“123”时则说明该用户合法,否则不合法。 运行部署服务器,提示登录失败如图1-6所示。

WebApi系列~通过HttpClient来调用WebApi接口

回到目录 HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基于api项目的特殊性,它需要有一个完全安全的环境,所以,你的api控制器看起来有点特别,只有5个方法,而且都是标准的http方法,我觉得这种设计很不错,很清晰,而且为了实现安全性,它不支持使用传统的表单数据,取而代之的是FromBody参数,它指拿HttpRequestMessage里参数,而不是所有的Request数据,这是基于安全方面的考虑。一Api接口参数的标准性 Get方式,可以有多个重载,有多个参数 POST方式,只能有一个参数,并且用[FromBody]约束,如果有多个参数,需要以对象的方式进行传递 Put方式,只能有两个参数,其中一个是通过Request.QueryString方式进行传递的,作为要更新对象的主键,别一个是[FromBody]字段,也是一个字段,如果多个字段需要把它封装成对象 标准接口如图 二调用方,参数的标准性 在客户端进行接口调用时,我们以网页端为例,看一下网页端进行ajax跨域请求的代码

Get方式 $.ajax({ url: "http://localhost:52824/api/register", type: "GET", success: function (data) { console.log("json:" + data); } }); Post方式 $.ajax({ url: "http://localhost:52824/api/register", type: "POST", data: { '': '1' },//这里键名称必须为空,多个参数请传对象,api端参数名必须为value success: function (data) { console.log("post:" + data); } }); 三在控制台中实现Get方式获取接口数据(只有异步实现) ///

/// HttpClient实现Get请求 /// static async void dooGet() { string url = "http://localhost:52824/api/register?id=1&leval=5"; //创建HttpClient(注意传入HttpClientHandler) var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; using (var http = new HttpClient(handler)) { //await异步等待回应 var response = await http.GetAsync(url);

电梯模拟程序(Java语言编写)

import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; public class LiftMainTest { public static void main(String args[]) { new LiftTest("电梯测试"); } } //批量数据测试对话框 class Dialog extends JDialog implements ActionListener { int Message=0; JPanel DJPanel=new JPanel(); JTextField TestField[]=new JTextField[16]; JLabel TestLabel1=new JLabel("时间"); JLabel TestLabel2=new JLabel("人数"); JLabel TestLabel3=new JLabel("起始楼层"); JLabel TestLabel4=new JLabel("目标楼层"); JButton ok=new JButton("确定"); JButton cancel=new JButton("取消"); Dialog(JFrame f,String s,boolean b) { super(f,s,b); DJPanel.setLayout(new GridLayout(7,3)); for(int i=0;i<=15;i++) { TestField[i]=new JTextField(4); } DJPanel.add(TestLabel1); DJPanel.add(TestLabel2); DJPanel.add(TestLabel3); DJPanel.add(TestLabel4); DJPanel.add(TestField[0]); DJPanel.add(TestField[1]); DJPanel.add(TestField[2]); DJPanel.add(TestField[3]); DJPanel.add(TestField[4]); DJPanel.add(TestField[5]); DJPanel.add(TestField[6]); DJPanel.add(TestField[7]); DJPanel.add(TestField[8]);

安全生产模拟考试平台题库

3 1、企业应负责制定现场应急预案,并且定期检验和评估现场应急预案和程序的有效程度,并适时进行修订。(1.0分)答案:对 2、现场处置方案的应急组织与职责主要包括应急自救组织机构、人员的具体职责,不应同单位或车间、班组人员工作职责紧密结合,明确相关岗位和人员的应急工作职责。(1.0分)正确答案:错 3、针对应急演练活动可能发生的意外情况制定演练保障方案或应急预案,并进行演练,做到相关人员应知应会,熟练掌握。(1.0分)正确答案:对 4、应急救援预案要有实用性、要根据本单位的实际条件制订,使预案便于操作。(1.0分)正确答案:对 5、一个单位的不同类型的应急救援预案要形成统一整体,救援力量要统一安排。(1.0分)正确答案:对 6、生产经营单位主管安全工作的领导对本单位事故隐患排查治理工作全面负责。(1.0分)正确答案:错 7、应急救援过程中,应急救援人员应加强对重要目标和地段的警戒和巡逻,防止人为破坏、制造事端。(1.0分)正确答案:对 8、企业要加强对各种救援队伍的培训,保证人员能够熟悉事故发生后所采取的对应方法和步骤,做到应知应会。(1.0分)正确答案:对 9、在建立警戒区域时,不必要把警戒区和污染区内与事故无关的人员撤离。(1.0分)正确答案:错 10、应急救援组织机构应包括应急处置行动组、通信联络组、疏散引导组、安全防护救护组等。(1.0分)正确答案:对11、职业病诊断机构在安全生产监督管理部门作出调查结论或者判定前应当中止职业病诊断。(1.0分)正确答案:对12、用人单位安排未经职业健康检查的劳动者从事接触职业病危害的作业的,并处5万元以上30万元以下的罚款;情节严重的,责令停止产生职业病危害的作业,或者提请有关人民政府按照国务院规定的权限责令关闭。(1.0分)正确答案:对13、职业病防护设施,包括降低职业病危害因素的强度或浓度的设备和设施,也包括有关建筑物和构筑物。(1.0分)正确答案:对 14、危险化学品项目的职业卫生防护设施无需与主体工程同时设计,同时施工,同时投入生产和使用,可先行投产、运行。 (1.0分)正确答案:错 15、职业禁忌症,如Ⅰ期及Ⅱ期高血压、活动性消化性溃疡、慢性肾炎、未控制的甲亢、糖尿病和大面积皮肤疤痕的患者,均不得从事高温作业。(1.0分)正确答案:错 16、为降低噪声,对其传播途径的处理实质就是增加声音在传播过程的衰减。(1.0分)正确答案:对 17、在进入受限空间作业前,应切实做好工艺处理工作,将受限空间吹扫、蒸煮、置换合格;对所有与其相连且可能存在可燃可爆、有毒有害物料的管线、阀门加盲板隔离,有阀门的可关闭阀门代替安装盲板。(1.0分)正确答案:错 18、凡确诊患有职业病的职工,可由企业决定是否享受国家规定的工伤保险待遇或职业病待遇。(1.0分)正确答案:错 19、电机冒烟起火时要紧急停车。(1.0分)正确答案:对 20、严重缺水时,如果立即上水就可能导致锅炉事故。(1.0分)正确答案:对 21、锅炉是把燃料的化学能变成热能,再利用热能把水加热成具有一定温度和压力的蒸汽的设备。(1.0分)正确答案:对22、气瓶充装和使用人员允许穿化纤服。(1.0分)正确答案:错 23、特殊情况下,气瓶允许长时间置于烈日的曝晒下。(1.0分)正确答案:错 24、气瓶实行固定单位充装制度,气瓶充装单位只充装自有气瓶和托管气瓶,不得为任何其它单位和个人充装气瓶。(1.0分)正确答案:对 25、《危险化学品安全管理条例》规定,申请危险化学品安全使用许可证的化工企业不用进行安全评价。(1.0分)正确答案:错 26、生产经营单位为了企业利益,可以与从业人员订立协议,免除或者减轻其对从业人员因生产安全事故伤亡依法应承担的责任。(1.0分)正确答案:错 27、特种设备安全监督管理部门应当制定特种设备应急预案。特种设备使用单位应当制定事故应急专项预案,并定期进行事故应急演练。(1.0分)正确答案:对 28、特种设备使用单位应当使用符合安全技术规范要求的特种设备。(1.0分)正确答案:对 29、产生职业病危害的用人单位工作场所还应当有配套的更衣间、洗浴间、孕妇休息间等卫生设施。(1.0分)正确答案:对 30、《中华人民共和国消防法》规定,建设工程的消防设计、施工必须符合国家工程建设消防技术标准。(1.0分)正确答案:对 31、《中华人民共和国消防法》规定,单位的安全管理人员是本单位的消防安全责任人。(1.0分)正确答案:错 32、对产生严重职业病危害的作业岗位,应当在其醒目位置,设置警示标识和中文警示说明。(1.0分)正确答案:对 33、职工发生工伤时,用人单位应当采取措施使工伤职工得到及时救治。(1.0分)正确答案:对 34、《中华人民共和国安全生产法》规定,任何单位或者个人对事故隐患或者安全生产违法行为,均有权向负有安全生产监督管理职责的部门报告或者举报。(1.0分)正确答案:对35、《安全生产许可证条例》规定的行政处罚,由安全生产许可证颁发管理机关决定。(1.0分)正确答案:对 36、25Hz~300Hz的交流电流对人体伤害最严重。(1.0分)正确答案:对 37、蒸气和气体静电比固体和液体的静电要强一些,有的能高达数万伏以上。(1.0分)正确答案:错 38、静电屏蔽可以消,在静电场中可除静电电荷。(1.0分)查看答案 40、人体是导体能接触起电而成为带电体,引起感应放电。(1.0分)正确答案:错 41、泡沫灭火器一般用于带电灭火。(1.0分)正确答案:错 42、化学危险品仓库应设在远离城镇和人口密集的地区,并设置专用仓库和专用线路,有保证安全的特殊装卸设备以及符合城市规划、公安、防火等有关条例规定的安全措施,设置地点应与当地有关单位协商确定。(1.0分)正确答案:对 43、输送有毒、易燃和易腐蚀物料的机泵,在解体检修之前,

JAVA-用HttpClient来模拟浏览器GET,POST

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE问题的处理。我们知道目前流行的动态网页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用https://www.sodocs.net/doc/1812531016.html,.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的“顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了! 我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用https://www.sodocs.net/doc/1812531016.html,.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http 服务器的访问绝非易事。 Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS 的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所有问题。 1.读取网页(HTTP/HTTPS)内容 下面是我们给出的一个简单的例子用来访问某个页面 /* * Created on 2003-12-14 by Liudong */ package http.demo; import java.io.IOException; import https://www.sodocs.net/doc/1812531016.html,mons.httpclient.*; import https://www.sodocs.net/doc/1812531016.html,mons.httpclient.methods.*; /** * 最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面 * @author Liudong

java模拟试卷3与答案

复习题 3 一、选择题 1. JDK 提供的编译器是(B)。 (A ) java.exe(B ) javac.exe (C) javap.exe( D) javaw.exe 2.以下作为 Java 程序入口的 main 方法声明正确的( C)。 (A ) public void main(String args[]) (B ) public int main(String args[]) (C) public static void main(String args[]) (D ) public static int main(String args[]) 3.以下标识符错误的是( C )。 (A )Public( B)张三( C) class(D ) main 4.java 中定义字符串 String s= ”pzhu”,下面操作可以取得字符串长度的是( A )。 (A ) s.length()( B) s.length( C)s.size()( D) length(s) 5.如下定义数组,操作正确的是(D)。 int a[]={1,2,3}; (A ) a[3]=100(B ) a[0].length( C)a++( D) a.length 6.如下定义二维数组操作错误的是()。 int a[][]={{1,2},{3}}; (A ) a[0][1]=200( B) a[0].length( C) a[1][1]=100( D) a.length 7. 以下数据类型存储空间最大的是(B)。 (A ) byte( B) long(C) float(D ) char 8. 面向对象的三大特性,不包括如下( A)。 (A )异常( B)封装(C)继承(D )多态 9、关于类的定义以下说法错误(B)。 (A )类定义使用class 关键字( B)每个类中必须有一个main 方法 (C)一个包可以包含多个类( D) java 中所有类都是Object 类的子类 10. 关于构造方法以下说法错误的是(D)。 (A)构造方法名必须与类名一致(B)构造方法可以重载 (C)构造方法是通过new 来调用(D)每个类都必须编写构造方法代码 11.关于继承如下说法错误的是(C)。 (A) Java 是单继承的(B)通过extends 来定义继承 (C)所有父类方法都可以被override的(D)继承呈现的是 is a 的关系 12.以下代码执行的结果是 ( C )。 System.out.println(" 攀枝花学院 pzhu".length()); (A)编译错误(B)运行错误(C) 9(D) 14 13. 用来存储键值对的容器是 ()。 (A )ArrayList( B ) LinkedList(C) HashSet( D) HashMap 14、 java 中用来抛出异常的关键字是( C )。 (A) try(B) catch(C) throw(D) throws 15.关于 finally块中的代码,以下说法不正确的是(A)。 (A ) try 块中的 return 语句会中断finally 块中语句的执行 (B )无论 finally 块前的语句运行是否产生异常,其中的语句都会执行 (C) finally 块中的语句通常中用作资源的清理 - 1 -

c# 使用 HttpWebRequest模拟登陆(附带验证码)

c# 使用HttpWebRequest模拟登陆(附带验证码) 在C#中,可以使用HttpWebRequest进行相关的模拟登陆,登陆后进行相关的操作,比如抓取数据,页面分析,制作相关登陆助手等等。 先说下流程 1.使用httpwebrequest先进入你要登录的网站,获取cookie 2.使用第一步获取的cookie到验证码的网页将验证码下载下来。 3.使用Post数据发送至网站。如果有cookie则继续保存。 4.使用第三步的cookie登陆相关网页操作。 获取相关数据可以使用抓包工具进行抓取,如httpwatch。(网上下载的好多都有病毒,下载的时候注意点) ///

/// 通过get方式请求页面,传递一个实例化的cookieContainer /// /// /// /// public static ArrayList GetHtmlData(string postUrl, CookieContainer cookie) { HttpWebRequest request; HttpWebResponse response; ArrayList list = new ArrayList(); request = WebRequest.Create(postUrl) as HttpWebRequest; request.Method = "GET"; https://www.sodocs.net/doc/1812531016.html,erAgent = "Mozilla/4.0"; request.CookieContainer = cookie; request.KeepAlive = true; request.CookieContainer = cookie; try { //获取服务器返回的资源 using (response = (HttpWebResponse)request.GetResponse()) {

安全生产模拟考试平台题库

安全生产模拟考试平台题库

3 1、企业应负责制定现场应急预案,并且定期检验和评估现场应急预案和程序的有效程度,并适时进行修订。(1.0分)答案:对 2、现场处置方案的应急组织与职责主要包括应急自救组织机构、人员的具体职责,不应同单位或车间、班组人员工作职责紧密结合,明确相关岗位和人员的应急工作职责。(1.0分)正确答案:错 3、针对应急演练活动可能发生的意外情况制定演练保障方案或应急预案,并进行演练,做到相关人员应知应会,熟练掌握。 (1.0分)正确答案:对 4、应急救援预案要有实用性、要根据本单位的实际条件制订,使预案便于操作。(1.0分)正确答案:对 5、一个单位的不同类型的应急救援预案要形成统一整体,救援力量要统一安排。(1.0分)正确答案:对 6、生产经营单位主管安全工作的领导对本单位事故隐患排查治理工作全面负责。(1.0分)正确答案:错 7、应急救援过程中,应急救援人员应加强对重要目标和地段的警戒和巡逻,防止人为破坏、制造事端。(1.0分)正确答案:对8、企业要加强对各种救援队伍的培训,保证人员能够熟悉事故发生后所采取的对应方法和步骤,做到应知应会。(1.0分)正确答案:对 9、在建立警戒区域时,不必要把警戒区和污染区内与事故无关的人员撤离。(1.0分)正确答案:错 10、应急救援组织机构应包括应急处置行动组、通信联络组、疏散引导组、安全防护救护组等。 (1.0分)正确答案:对 11、职业病诊断机构在安全生产监督管理部门作出调查结论或

者判定前应当中止职业病诊断。 (1.0分)正确答案:对 12、用人单位安排未经职业健康检查的劳动者从事接触职业病危害的作业的,并处5万元以上30万元以下的罚款;情节严重的,责令停止产生职业病危害的作业,或者提请有关人民政府按照国务院规定的权限责令关闭。 (1.0分)正确答案:对 13、职业病防护设施,包括降低职业病危害因素的强度或浓度的设备和设施,也包括有关建筑物和构筑物。(1.0分)正确答案:对 14、危险化学品项目的职业卫生防护设施无需与主体工程同时设计,同时施工,同时投入生产和使用,可先行投产、运行。(1.0分)正确答案:错 15、职业禁忌症,如Ⅰ期及Ⅱ期高血压、活动性消化性溃疡、慢性肾炎、未控制的甲亢、糖尿病和大面积皮肤疤痕的患者,均不得从事高温作业。(1.0分)正确答案:错 16、为降低噪声,对其传播途径的处理实质就是增加声音在传播过程的衰减。(1.0分)正确答案:对 17、在进入受限空间作业前,应切实做好工艺处理工作,将受限空间吹扫、蒸煮、置换合格;对所有与其相连且可能存在可燃可爆、有毒有害物料的管线、阀门加盲板隔离,有阀门的可关闭阀门代替安装盲板。(1.0分)正确答案:错 18、凡确诊患有职业病的职工,可由企业决定是否享受国家规定的工伤保险待遇或职业病待遇。(1.0分)正确答案:错19、电机冒烟起火时要紧急停车。(1.0分)正确答案:对20、严重缺水时,如果立即上水就可能导致锅炉事故。(1.0分)正确答案:对 21、锅炉是把燃料的化学能变成

HTTPClient用法

HttpClient的用法 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过HTTP 协议来访问网络资源。 Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。 首先,我们必须安装好 HttpClient。 HttpClient 可以在https://www.sodocs.net/doc/1812531016.html,/commons/httpclient/downloads.html下载. HttpClient 用到了 Apache Jakarta common 下的子项目 logging,你可以从这个地址 https://www.sodocs.net/doc/1812531016.html,/site/downloads /downloads_commons-logging.cgi下载到 common logging,从下载后的压缩包中取出 commons-logging.jar 加到 CLASSPATH 中. HttpClient 用到了 Apache Jakarta common 下的子项目 codec,你可以从这个地址 https://www.sodocs.net/doc/1812531016.html,/site/downloads /downloads_commons-codec.cgi 下载到最新的 common codec,从下载后的压缩包中取出 commons-codec-1.x.jar 加到 CLASSPATH 中 1.读取网页(HTTP/HTTPS)内容 下面是我们给出的一个简单的例子用来访问某个页面 package http.demo; import java.io.IOException; import https://www.sodocs.net/doc/1812531016.html,mons.httpclient.*; import https://www.sodocs.net/doc/1812531016.html,mons.httpclient.methods.*; /** * 最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面

Java程序设计预赛模拟题-2

一、单选题 1.Java JDK中调试器的命令是( )。 A. javac B. java C. jdb D. javah 2.运行jar文件中class文件需要在java命令后面加的参数为()。 A. -cp B. -g C. -d D. -verbose 3.下面哪项在java中是不合法的标识符?() A. $user B. point C. You&me D. _endline 4.下列哪一项不是Java保留字?() A. sizeof B. super C. abstract D. break 5.下列哪个布局管理器中的按钮位置有可能会根据Frame的大小改变而改变? () A. BorderLayout B. CardLayout C. GridLayout D. FlowLayout 6.下面哪些java语句会导致无限循环?( ) I. while (true) i = 0; II. while (false) i = 1; III. while (!false) i = 0; A. III only B. I and III only C. I only D. I, II and III 7.下面是Example.java文件的完整代码,请找出会产生编译错误的行()。 1) class BaseClass { 2) public String str; 3) public BaseClass(){ 4) System.out.println(“ok”);} 5) public BaseClass(String s){ 6) str=s;}} 7) class SubClass extends BaseClass{ 8) } 9) public class Example{ 10) public void method(){ 11) SubClass s=new SubClass(“hello”); 12) BaseClass b=new BaseClass(“world”); 13) } 14) } A. 7 B. 10 C. 11 D.12 8.可以在下面代码段point x处写入的是()。 //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 9.下面关于事件监听的说明,哪一个语句是正确的?() A. 所有组件,都不允许附加多个监听器 B. 如果多个监听器加在一个组件上,那么事件只会触发一个监听器 C. 组件不允许附加多个监听器

HttpClient学习

HttpClient 学习笔记 笔记一: 1、HttpClient的功能 1.基于标准,纯正java,实现了http1.0和1.1。 2.在一个可扩展的OO框架内,实现了HTTP的全部方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE) 3.支持HTTPS(ssl上的HTTP)的加密操作 4.透明地穿过HTTP代理建立连接 5.通过CONNECT方法,利用通过建立穿过HTTP代理的HTTPS连接 6.利用本地Java socket,透明地穿过SOCKS(版本5和4)代理建立连接 7.支持利用Basic、Digest和NTLM加密的认证 8.支持用于上传大文件的Multi-Part表单POST方法 9.插件式安全socket实现,易于使用第三方的解决方案 10.连接管理,支持多线程应用,支持设定单个主机总连接和最高连接数量,自动检测和 关闭失效连接 11.直接将请求信息流送到服务器的端口 12.直接读取从服务器的端口送出的应答信息 13.支持HTTP/1.0中用KeepAlive和HTTP/1.1中用persistance设置的持久连接 14.直接访问由服务器送出的应答代码和头部信息 15.可设置连接超时时间 16. 17.HttpMethods 实现Command Pattern,以允许并行请求或高效连接复用 18.遵循the Apache Software License协议,源码免费可得

2、预备工作 对jre1.3.*,如果要HttpClient支持https,则需要下载并安装jsse和jce.安装的步骤如下: 1)下载jsse和jce. 2)检查CLASSPA TH中没有与jsse和jce相关的jar包 3)将US_export_policy.jar、local_policy.jar、jsse.jar、jnet.jar、jce1_2_x.jar、sunjce_provider.jar、jcert.jar复制到目录: UNIX:$JDK_HOME/jre/lib/ext Windows:%JDK_HOME%\jre\lib\ext 4)修改下述目录下的java.security文件。 UNIX:$JDK_HOME/jre/lib/security/ Windows:%JDK_HOME%\jre\lib\security\ 5) 将 # # List of providers and their preference orders: # security.provider.1=sun.security.provider.Sun security.provider.2=com.sun.rsajca.Provider 改为: # # List of providers and their preference orders: # security.provider.1=com.sun.crypto.provider.SunJCE security.provider.2=sun.security.provider.Sun security.provider.3=com.sun.rsajca.Provider security.provider.4=https://www.sodocs.net/doc/1812531016.html,.ssl.internal.ssl.Provider HttpClient还要求安装commons-logging,下面跟httpclient一块安装。 3、取得源码 cvs -d :pserver:anoncvs@https://www.sodocs.net/doc/1812531016.html,:/home/cvspublic login password: anoncvs cvs -d :pserver:anoncvs@https://www.sodocs.net/doc/1812531016.html,:/home/cvspublic checkout jakarta-commons/logging cvs -d :pserver:anoncvs@https://www.sodocs.net/doc/1812531016.html,:/home/cvspublic checkout jakarta-commons/httpclient 编译: cd jakarta-commons/logging ant dist cp dis/*.jar ../httpclient/lib/ cd ../httpclient

Java语言程序设计模拟题

Java语言程序设计模拟题(13) 一、选择题(每题2分,共40分) 1、C 2、D 3、C 4、B 5、D 6、B 7、B 8、C 9、A10、B 11、A12、B13、C14、C15、B16、D17、A18、A19、B20、B 1、指出正确的表达式() A、 byte=128; B、 Boolean=null; C、 long l=0xfffL; D、 double=0.9239d; 2、MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。() A、 public int MAX_LENGTH=100; B、 final int MAX_LENGTH=100; C、 final public MAX_LENGTH=100; D、public final int MAX_LENGTH=100; 3、哪个关键字可以抛出异常?() A、 transient B、 finally C、 throw D、 static 4、main()方法的返回类型是:() A、 int B、 void C、 boolean D、 static

5、System类在哪个包中? () A、 java.util B、 java.io C、 java.awt D、 https://www.sodocs.net/doc/1812531016.html,ng 6、下面关于Applet的说法正确的是() A、 Applet也需要main方法 B、 Applet必须继承自 C、 Applet能访问本地文件 D、 Applet程序不需要编译 7、下面哪个单词是Java语言的关键字() A、Float B、this C、string D、unsigned 8、下面哪个修饰符修饰的方法只能被本类中的其他方法使用() A、protected B、static C、private D、public 9、下面哪个是对字符串String的正确定义() A、String s1=null; B、String s2=’null’ ; C、String s3=(String) ‘abc’ ; D、String s4=(String) ‘\uface’ 10、下面哪条语句不能定义一个float型的变量() A、float f1= -343 ; B、float f2=3.14 ; C、float f3=0x12345 ; D、float f4=2.8F ; 11、编译java程序时出现error: cannot read: aaa.java,则下列原因最正确的是() A、原因是执行的当前目录下没有找到aaa.java文件。 B、原因是没有安装JDK开发环境。 C、原因是java源文件名后缀一定是以 .txt 结尾。

2017年安全生产模拟考试试题(十五套供1500道题)

安全生产模拟考试 第一套试题 1、参与演练单位不可对本单位的演练情况进行总结。(错) 2、事故应急指挥领导小组负责本单位预案的制订、修订,组建应急救援队伍,检查督促做好重大危险源事故的预防措施和应急救援的各项准备工作。(对) 3、现场处臵即根据事故情景,按照相关应急预案和现场指挥部要求对事故现场进行控制和处理。(对) 4、专项应急预案应制定明确的救援程序和具体的应急救援措施。(对) 5、对本单位应急装备、应急队伍等应急能力进行评估,并结合本单位实际,加强应急能力建设,是编制应急预案的关键。(对) 6、应急预案的管理遵循综合协调、分类管理、分级负责、属地为主的原则。(对) 7、应急救援指挥部由工会主席任总指挥;有关人员任副总指挥。(错) 8、突发环境事件报告中初报是查清有关基本情况后随时上报。(错) 9、应急救援组织机构应包括应急处臵行动组、通信联络组、疏散引导组、安全防护救护组等。(对) 10、有关单位应当适时检测、维护其报警装臵和应急救援设备、设施,使其处于良好状态,确保正常使用。(错) 11、用人单位不承担职业健康检查费用,给予警告,责令限期改正,可以并处3万元以下的罚款。(对) 12、《工作场所安全使用化学品规定》,职工应遵守劳动安全卫生规章制度和安全操作规程,并应及时报告认为可能造成危害和自己无法处理的情况。(对)13、危险化学品项目的职业卫生防护设施无需与主体工程同时设计,同时施工,同时投入生产和使用,可先行投产、运行。(错)

14、职业病诊断医师应当独立分析、判断、提出诊断意见,任何单位和个人无权干预。(对) 15、各单位应建立健全听力保护记录,听力保护记录应至少保存10年。(对) 16、生产性毒物可通过呼吸道、皮肤和消化道侵入人体。(错) 17、个体防毒的措施之一是正确使用呼吸防护器,防止有毒物质从呼吸道进入人体引起职业中毒。(对) 18、存在高毒作业的危险化学品建设项目的防护设施、设计,未经卫生行政部门审查同意,可进行施工操作。(错) 19、弹簧式安全阀结构轻便紧凑,灵敏度也较高,安装位臵不受限制,而且因为对振动的敏感性小,所以可用于移动式的压力容器上。(对) 20、为了改善摩擦性能,使填料密封有足够的使用寿命,不允许介质有泄漏现象。(错) 21、气瓶充装和使用人员允许穿化纤服。(错) 22、在正常停炉后,可立即全部放水。(错) 23、应力腐蚀是指在拉应力作用下,金属在腐蚀介质中引起的破坏。(对) 24、安全阀与压力容器之间一般不宜装设截止阀门。(对) 25、危险化学品生产企业进行生产时,应当依照《安全生产许可证条例》的规定,取得危险化学品安全生产许可证。(错) 26、生产经营单位可以根据本单位实际情况为从业人员提供符合国家标准或者行业标准的劳动防护用品,并监督、教育从业人员按照使用规则佩戴、使用。(对)27、剧毒化学品以及储存数量构成重大危险源的其他危险化学品,应当在专用仓库内单独存放,并实行双人收发、双人保管制度。(对) 28、企业依法进行安全评价,就能取得安全生产许可证。(错)

Java网络编程(三)HttpUrlConnection与HttpClient详解(雷惊风)

HttpUrlConnection与HttpClient详解 一.概念。 在Android开发中,AndroidSDK中对HTTP提供了很好的支持,主要包括两种接口。 1.一个是Sun公司提供的库,基于标准Java接口的 HttpURLConnection,这个类封装的很少,如果使用高级功 能,如重访问/Cookie/Session等就相当不方便。它可以实现 简单的基于URL的请求与相应功能。Google在Android Api23及以后的版本中推荐使用HttpURLConnention,在后 续版本中逐渐对其进行优化完善。在2.2版本以前,一直存 在着一些bug。比如对一个可读的InputStream调用close 方法时,可能会导致连接池失效。通常我们会禁用连接池功 能。 2.另一个是Apache公司提供的的HttpClient,它提供了高效的, 最新的功能丰富的api,支持Http协议工具包,支持HTTP 最新版本和建议,是个很好的开源框架,封装了http的请求, 参数,内容体,响应等,拥有众多API,但同时HttpClient 的API数量太多,如果不破坏兼容性的情况下想对他进行扩 展很麻烦。在API 23 SDK将其去掉了。建议使用 HttpURLConnection。 以上两种联网方式都支持HTTPS协议、以流的形式进行传输、 IPv6、配置超时时间、以及连接池等功能。

二.区别。 1.功能上,HttpClient库要丰富很多,提供了很多工具,封装了http 的请求头,参数,内容体,响应,还有一些高级功能,代理、COOKIE、鉴权、压缩、连接池的处理。 2.H ttpClient高级功能代码写起来比较复杂,对开发人员的要求会高 一些,而HttpURLConnection对大部分工作进行了包装,屏蔽了不需要的细节,适合开发人员直接调用。 3.HttpURLConnection在2.3版本增加了一些HTTPS方面的改进, 4.0版本增加一些响应的缓存。 4.HttpUrlConnection直接支持GZIP压缩;HttpClient也支持,但 要自己写代码处理。 5.HttpUrlConnection直接支持系统级连接池,即打开的连接不会直 接关闭,在一段时间内所有程序可共用;HttpClient当然也能做到,但毕竟不如官方直接系统底层支持好。 6.HttpUrlConnection直接在系统层面做了缓存策略处理(4.0版本 以上),加快了重复请求的速度。 7.HttpClient 适用于web browsers, 他们是可扩展的,并且拥有大 量的稳定APIs。但是,在不破坏其兼容性的前提下很难对如此多的APIs做修改。因此,Android 团队对修改优化Apache HTTP Client表现的并不积极。

相关主题