java判断http的简单介绍
今天给各位分享java判断http的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java如何判断http链接是否是具体的文件
- 2、Java开发中怎么向URL地址发送Http请求,根据返回的状态码判断成功失败?
- 3、java 获取url中是http还是https
- 4、java用jpcap怎么识别出http和https的数据包
- 5、同一项目,javascript获取的http数据另一个类的java可以用来判断吗
- 6、java request 判断是否是https
java如何判断http链接是否是具体的文件
需要根据链接来获取文件类型,将内容正确存储。
这个链接指向的文件就是个jpg文件。但是后来发现有诸如
;origin=1webSite=1type=1的链接,这招就不灵了。后来谷歌百度了一下也没发现解决办法。后来机缘巧合在Java Network Programming上找到了一个办法:
URLConnection class provides two static methods to help programs figure out the MIME type of some data; you can use these if the content type just isn't available or if you have reason to believe that the content type you're given isn't correct。
就是说URLConnection提供了两种方法可以猜测(根据实测结果,这个猜测是相当的准)数据的MIME类型。
第一个是:
public static String guessContentTypeFromName(String name)
这个方法根据URL文件部分的后缀名来判断类型,跟之前我的方法一样。这个不能解决上面那个问题。
第二个是:
public static String guessContentTypeFromStream(InputStream in)
这个方法是根据流的前面几个字节来判断类型,这个就不需要文件后缀名了,完全可以解决上面那个问题。
Java开发中怎么向URL地址发送Http请求,根据返回的状态码判断成功失败?
数据库服务器上不一定开了80端口呀,个人感觉判断网络是否通,还是使用Ping命令的好,如下:
String ip = "127.0.0.1"; // 使用正则,从Url中解析出数据库IP地址
System.out.println("ip = " + ip);
Process process = Runtime.getRuntime().exec("ping " + ip); // 执行Ping命令
DataInputStream dis = new DataInputStream(process.getInputStream());
byte[] buffer = new byte[1024 * 1000];
int len = dis.read(buffer);
StringBuffer sb = new StringBuffer();
while (len 0) {
sb.append(new String(buffer, 0, len));
len = dis.read(buffer);
}
System.out.println("ping result = " + sb.toString());
// 从Ping的结果中,解析出丢失率
Pattern p = Pattern.compile("(?=\\().*%");
Matcher m = p.matcher(sb.toString());
boolean flag = true; // 网络是否通
if (m.find()) {
String str = m.group();
System.out.println("lost = " + str);
// 如果丢失率等于100%,则说明网络不通
flag = str.equals("100%") ? false : true;
}
System.out.println("the net is " + flag);
java 获取url中是http还是https
先调用 java.net.URL.toURI() 转成 URI
再获取 java.net.URI.getScheme()
示例:
public static void main(String[] args) throws MalformedURLException,URISyntaxException{
URL url = new URL("");
URI uri = url.toURI();
System.out.println(uri.getScheme());
}
结果:
https
java用jpcap怎么识别出http和https的数据包
暂时的解决方法:
在抓到的tcp数据包的data字段里判断是否包含"HTTP"字符串。
不足:
1.与wireshark对比后发现,wireshark有的tcp包中data字段有HTTP也识别为tcp而非http(不知道wireshark是怎么解析的)。
2.感觉会漏判,不够准确。
继续寻找更好的解法,期待解答!
同一项目,javascript获取的http数据另一个类的java可以用来判断吗
JavaScript的数据
JavaScript的数据分为两种:简单数据和复杂数据。简单数据包含number,string,boolean,undefined和null这五种;复杂数据只有一种即object。
万能的typeof
我们先测试一下通过typeof来获取简单数据类型。什么也别说了,上代码是王道:
01 // 获取变量obj的数据类型
02 function getType(obj) {
03 return typeof (obj);
04 }
05 /*常量获取类型*/
06 alert(getType(1)); //number
07 alert(getType("jeff wong")); //string
08 alert(getType(true)); //boolean
09 alert(getType(undefined)); //undefined
10 alert(getType(null)); //object
11 /*变量获取类型*/
12 var num = 1;
13 var str = "jeff wong";
14 var flag = true;
15 var hell = undefined;
16 var none = null;
17 alert(getType(num)); //number
18 alert(getType(str)); //string
19 alert(getType(flag)); //boolean
20 alert(getType(hell)); //undefined
21 alert(getType(none)); //object
正如你所看到的那样,通过typeof运算符,前面四个简单数据类型完全在意料之中,但是typeof null却返回object。应该注意到,null是null类型的唯一值,但null并不是object,具有null值的变量也并非object,所以直接通过typeof,并不能正确得到null类型。 要正确获取简单数据类型,只要在getType的地方加点改进就可以了:
1 function getType(obj) {
2 return (obj === null) ? "null" : typeof (obj);
3 }
接着来试一下复杂数据类型object:
01 function Cat() {
02 }
03 Cat.prototype.CatchMouse = function () {
04 //do some thing
05 }
06 // 获取变量obj的数据类型
07 function getType(obj) {
08 return (obj === null) ? "null" : typeof (obj);
09 }
10 var obj = new Object();
11 alert(getType(obj)); //object
12 var func = new Function();
13 alert(getType(func)); //function
14 var str = new String("jeff wong");
15 alert(getType(str)); //object
16 var num = new Number(10);
17 alert(getType(num)); //object
18 var time = new Date();
19 alert(getType(time)); //object
20 var arr = new Array();
21 alert(getType(arr)); //object
22 var reg = new RegExp();
23 alert(getType(reg)); //object
24 var garfield = new Cat();
25 alert(getType(garfield)); //object
我们看到,除了Function(请注意大小写)返回了function,不管是javascript的常见内置对象Object,String或者Date等等,还是自定义function,通过typeof返回的无一例外,通通都是object。但是对于自定义function,我们更愿意得到它的“庐山真面目”(示例中即Cat,而非object),而显然,typeof不具备这种转换处理能力。
constructor,想大声说爱你
既然万能的typeof也有无解的时候,那么我们怎么判断一个变量是否是自定义的function实例呢?我们知道,javascript的所有对象都有一个constructor属性,这个属性可以帮我们判断object数据类型,尤其是对自定义function同样适用:
1 var obj = "jeff wong";
2 alert(obj.constructor == String); //true
3 obj = new Cat();
4 alert(obj.constructor == Cat); //true
但是,下面的代码您也可以测试一下:
01 //alert(1.constructor); //数字常量 出错 数字常量无constructor
02 var num = 1;
03 alert(num.constructor == Number); //true
04 alert("jeff wong".constructor == String); //true
05 var str = "jeff wong";
06 alert(str.constructor == String); //true
07 var obj= null;
08 alert(obj.constructor); //null没有constructor属性
09 none = undefined;
10 alert(obj.constructor); //undefined没有constructor属性
实验证明,数字型常量,null和undefined都没有constructor属性。
下面的代码或许还能有点启发和挖掘作用:
01 function Animal() {
02 }
03 function Cat() {
04 }
05 Cat.prototype = new Animal();
06 Cat.prototype.CatchMouse = function () {
07 //do some thing
08 }
09 var obj = new Cat();
10 alert(obj.constructor == Cat); //false ??
11 alert(obj.constructor == Animal); //true 理解
原来对于原型链继承的情况,constuctor也不那么好使了。那怎么办?
直观的instanceof
嘿嘿,有请instanceof隆重登场。看它的命名,好像是获取某一个对象的实例,也不知这样理解对不对?不管怎样,我们还是动手改进上面的代码测试一下先:
01 function Animal() {
02 }
03 function Cat() {
04 }
05 Cat.prototype = new Animal();
06 Cat.prototype.CatchMouse = function () {
07 //do some thing
08 }
09 var garfield = new Cat();
10 alert(garfield instanceof Cat); //true 毫无疑问
11 alert(garfield instanceof Animal); //true 可以理解
java request 判断是否是https
从客户端发送请求,可以通过ajax进行判断,当发送请求时,通过XMLHttpRequest对象的实例的status属性返回编码的值进行判断,如404表示没有知道页面或是客户端url错误,5开头表示服务器端错误,200表示成功,等等。
通过业务逻辑发送请求可以通过httpClient发送请求,可以通过类似上面的返回编码进行判断,然后做不同的处理。
java判断http的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java判断http的信息别忘了在本站进行查找喔。