对于不需要用户名与密码认证的连接,一般只需要构造好URIBuilder随后发起get请求即可获得返回信息,具体代码如下
CloseableHttpClient client = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder("http://" + ip_addr + ":" + port);
HttpGet httpGet = new HttpGet(uriBuilder.build());
CloseableHttpResponse response = client.execute(httpGet);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
result = EntityUtils.toString(entity);
response.close();
client.close();
}
当请求需要用户名与密码的认证时,需要构造一个httpclient包下的UsernamePasswordCredentials对象,通过这样一个验证对象来提醒这是一个带有验证的请求。在实际操作的过程中,往往需要一并设置请求头user-agent,不然也可能会返回401状态码,以下是代码示例。
HttpClient httpClient = new HttpClient();
//需要验证
org.apache.commons.httpclient.UsernamePasswordCredentials creds = new UsernamePasswordCredentials(this.username, this.password);
httpClient.getState().setCredentials(AuthScope.ANY, creds);
//设置http头
List<Header> headers = new ArrayList<Header>();headers.add(new Header("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"));
httpClient.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
//开始连接
GetMethod method = new GetMethod("http://" + ip_addr + ":" + port);
method.setDoAuthentication(true);
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler(3, false));
try {
int statusCode = httpClient.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.out.println("Method failed code=" + statusCode + ": " + method.getStatusLine());
} else {
InputStream inputStream = method.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String s;
StringBuffer sb = new StringBuffer();
while ((s = br.readLine()) != null) {
sb.append(s + "\n");
}
result = sb.toString();
System.out.println(new String(method.getResponseBody(), "utf-8"));
}
} finally {
method.releaseConnection();
}
“我使用的开源软件存在着安全漏洞的风险?我怎么知道。”这也许是许多使用开源软件的开发者所有的疑惑。 没错,许多开发者使用的开源软件都有安全漏洞风险提示,及漏洞补丁信息。只要保证开源软件的漏洞补丁保持在最近就可以避免其中的安全漏洞风险了。 然而,更新漏洞库却是一件很令人头疼的事情。在开源软件广泛应用到开发中的今天,一个项目的完成肯定有很大一部分开源代码的参与。那么传统人工的...
如何让Delphi程序启动自动“以管理员身份运行"
问题:在编译一个项目时(该项目在其它电脑上可以正常build),发生gradle错误提示,详细内容如下:A problem occurred configuring project ':app'.> Could not resolve all artifacts for configuration ':app:classpath'. > Cannot resolve external dependency com.android.tools.build:gradle:3..
1、common工程中引入高版本的jar包,并排出部分jar包。使用exclusion配置 <!--导入了elasticsearch --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId>
面试的时候科大讯飞的一个面试官问我Activity的启动模式和具体的应用模式;我也一想是啊,平时不太注意,只知道有这几个启动模式,结果到了关键的时刻卡壳了,做个记录:一、Activity四种启动模式:(一)、基本描述standard:标准模式:如果在mainfest中不设置就默认standard;standard就是新建一个Activity就在栈中新建一个activity实例;si...
Network电容:耦合电容:Couplingcapacitance=e*T/S表面电容:Surface capcitance=e*W/H边缘电容:Fringe capcitance决定容值的因素:介电常数:e线宽:W线厚:T线间距:S介电材料的厚度:H随着工艺进步,W, S, T逐代递减,表面电容跟随减小,耦合电容随之增加,耦合电容在总电容中占比增加,当线厚 T 一定时为了减少耦合电容要么...
Unity的Socket网络编程中,为了防止程序卡死,一般使用多线程来监听端口,当收到来自客户端的消息时,需要显示在界面上。但是如果直接在子线程中操作Unity的界面或物体会报错。国外一个大神写了一个UnityThread类很好地解决了这个问题。紫色文字为谷歌翻译后的原文,个别地方作了修改。Unity是Thread不安全的,因此他们决定Thread通过添加一种机制在从另一个人使用其API时引发异常来使其无法从另一个人调用API Thread。这个问题已经被问了很多遍了,但是没有一个合适的解决方案
这是傅一平的第361篇原创【提醒:公众号推送规则变了,如果您想及时收到推送,麻烦右下角点个在看,或者把本号置顶】正文开始很多年前阿里出了《大数据之路》一书,在数据技术层面给出了有价值的指...
1.实现效果(相关注释已写在代码中):(1)静态图:(2)动态图:2.(1)文件结构:(2)MainWindow.xaml代码:<Window x:Class="RegisterPage.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Html引入:https://unpkg.com/browse/[email protected]/dist/vis-network.min.jsnpm引入:npm install vis 在关系图的页面引入vis:import Vis from ‘vis’ 在html中定义容器:<div id=”network_id”style=”height:800px”> 在scr...
大家好,我是无敌兔,从这一章开始
第一步:下载tomcat8对于无网络条件来说,需要安装文件交互软件,xftp 6 或者 MobaXterm,把优盘的里安装包copy进去就行,链接在下方我是链接:https://pan.baidu.com/s/12ugq0TQSTcjfZey2sWCOkA 我是提取码:ppto去官网下载最新版的tomcat8 路径http://tomcat.apache.org/下面...