1、Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了  以编程方式访问WEB服务  的功能;

2、URLDecoder、URLEncoder提供了  普通字符串  和  application/x-www-form-urlencoded MIME字符串  相互转换的静态方法;

3、【InetAddress】

    1.1  Java使用InetAddress代表IP地址,InetAddress有2个子类:Inet4Address、Inet6Address

    1.2  InetAddress没有提供构造器,  获取实例  使用2个静态方法:

          InetAddress getByName(String host);  根据主机获取对应的InetAddress对象;

          InetAddress getByAddresss(byte[] address);  根据原始IP地址获取对应的InetAddress对象;

          InetAddress getLocalHost();  获取本机IP地址对应的InetAddress实例;

    1.3  方法:

          String getCanonicalHostName();  获取此IP地址的全限定域名;

          String getHostAddress();  返回此InetAddress对象的IP地址字符串;

          String getHostName();  获取此IP地址的主机名;

          boolean isReachable(int time);  测试是否可到达该地址;

4、【使用URLDecoder、URLEncoder】

    1.1  URLDecoder、URLEncoder用于将  普通字符串  和  application/x-www-form-urlencoded MIME字符串  相互转换;

    1.2  application/x-www-form-urlencoded MIME字符串:

          在搜索引擎搜索包含中文的关键字时,访问的URL后面中文会变成类似乱码的东西,这就是application/x-www-form-urlencoded MIME字符串;

    1.3  【URLEncoder】

          方法:

            String encode(String s,String env);  将中文转换为application/x-www-form-urlencoded MIME字符串(s代表要转换的中文,env代表使用的编码格式);

       【URLDecoder】

          方法:

            String decode(String s,String env);  将application/x-www-form-urlencoded MIME字符串转换为中文(s代表要转换的字符串,env代表使用的编码格式);

  1. package com.an.net;
  2.  
  3. import java.net.URL;
  4. import java.net.URLConnection;
  5. import java.net.URLDecoder;
  6. import java.net.URLEncoder;
  7.  
  8. public class URLTest {
  9.  
  10. public static void main(String[] args)throws Exception{
  11. String encodeString=URLEncoder.encode("你好","UTF-8");
  12. //encodeString=%E4%BD%A0%E5%A5%BD
  13. System.out.println(encodeString);
  14.  
  15. String decode=URLDecoder.decode(encodeString,"UTF-8");
  16. //decode=你好
  17. System.out.println(decode);
  18.  
  19. URL url=new URL("https://baike.baidu.com/item/%E4%BD%A0%E5%A5%BD/32416?fr=aladdin");
  20. String file=url.getFile();
  21. //file=/item/%E4%BD%A0%E5%A5%BD/32416?fr=aladdin
  22. System.out.println(file);
  23. String host=url.getHost();
  24. //host=baike.baidu.com
  25. System.out.println(host);
  26. String path=url.getPath();
  27. //path=/item/%E4%BD%A0%E5%A5%BD/32416
  28. System.out.println(path);
  29. int port=url.getPort();
  30. System.out.println(port);
  31. String protocol=url.getProtocol();
  32. //protocol=https
  33. System.out.println(protocol);
  34. String query=url.getQuery();
  35. //query=fr=aladdin
  36. System.out.println(query);
  37. URLConnection urlConnection =url.openConnection();
  38. urlConnection.getOutputStream();
  39. }
  40. }

5、【使用URL、URLConnection】

    1.1  【URL】

          URL对象  代表统一资源定位器,是指向互联网资源的指针;

          URL由 协议名://主机:端口/资源  组成;

          方法:

            String getFile();  获取此URL的资源名;

            String getHost();  获取此URL的主机名;

            String getPath();  获取此URL的路径部分;

            int getProt();  获取此URL的端口;

            String getProtocol();  获取此URL的协议名;

            String getQuery();  获取此URL的查询字符串部分;

            URLConnection openConnection();  

                返回一个URLConnection对象,表示到应用程序和URL之间的通信链接;

                程序可通过该URLConnection对象向URL发送请求,读取URL的资源;

            InputStream openStream();  打开与此URL的连接,并返回一个用于读取该URL资源的InputStream;

    1.2  远程请求网络资源【创建一个和URL的连接,并发送请求、读取此URL所引用的资源】

        1.1.1  调用URL的openConnection方法获取URLConnection对象;

        1.1.2  设置URLConnection的参数和普通属性;

        1.1.3  GET请求,直接URLConnection实例调用connect方法即可创建连接;

            POST请求,获取URLConnection实例对应的输出流来发送请求参数;

        1.1.4  读取远程资源等

  1.  
  1. package com.an.net;
  2.  
  3. import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLConnection;
  4.  
  5. /**
    * get请求
    */
    public class GetRequestTest {
  6.  
  7. public static void main(String[] args){
    BufferedReader bufferedReader=null;
    try {
    URL url=new URL("https://baike.baidu.com/item/%E4%BD%A0%E5%A5%BD/32416?fr=aladdin");
    URLConnection urlConnection =url.openConnection();
    urlConnection.setRequestProperty("accept","*/*");
    urlConnection.setRequestProperty("connection","Keep-Alive");
    urlConnection.setRequestProperty("user-agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
    urlConnection.connect();
    bufferedReader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
    String s=null;
    while ((s=bufferedReader.readLine())!=null){
    System.out.println(s.trim());
    }
    }catch (Exception e){
    e.printStackTrace();
    }finally {
    try {
    if (bufferedReader!=null){
    bufferedReader.close();
    }
    }catch (IOException e){
    e.printStackTrace();
    }
  8.  
  9. }
    }
    }
  1. package com.an.net;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8.  
  9. /**
  10. * post请求
  11. */
  12. public class PostRequestTest {
  13.  
  14. private static String params="fr=aladdin";
  15.  
  16. public static void main(String[] args){
  17. PrintWriter printWriter=null;
  18. BufferedReader bufferedReader=null;
  19. try {
  20. URL url=new URL("https://baike.baidu.com/item/%E4%BD%A0%E5%A5%BD/32416");
  21. URLConnection urlConnection =url.openConnection();
  22. urlConnection.setRequestProperty("accept","*/*");
  23. urlConnection.setRequestProperty("connection","Keep-Alive");
  24. urlConnection.setRequestProperty("user-agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
  25. //POST请求必须设置
  26. urlConnection.setDoOutput(true);
  27. urlConnection.setDoInput(true);
  28. //获取urlConnection对应的输出流
  29. printWriter=new PrintWriter(urlConnection.getOutputStream());
  30. //发送POST请求参数
  31. printWriter.write(params);
  32. printWriter.flush();
  33. bufferedReader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
  34. String s=null;
  35. while ((s=bufferedReader.readLine())!=null){
  36. System.out.println(s.trim());
  37. }
  38. }catch (Exception e){
  39. e.printStackTrace();
  40. }finally {
  41. try {
  42. if (bufferedReader!=null){
  43. bufferedReader.close();
  44. }
  45. if (printWriter!=null){
  46. printWriter.close();
  47. }
  48. }catch (Exception e){
  49. e.printStackTrace();
  50. }
  51. }
  52.  
  53. }
  54. }

            

 

          

JavaSE---基本网络支持的更多相关文章

  1. 【Ansible 文档】【译文】网络支持

    Networking Support 网络支持 Working with Networking Devices 使用网络设备 自从Ansible 2.1开始,你现在可以使用成熟模型 - 编写 play ...

  2. java网络编程基础——基本网络支持

    基本网络支持 java.net包主要为网络编程提供支持. 1.InetAddress InetAddress类代表IP地址,还有两个子类:Inet4Address.Inet6Address. pack ...

  3. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持

    客户端可以支持灵活的,中间层连接选择,由于我们系统的定位架构大型信息系统的,所以全国各地,甚至国外的用户也会有,所以需要支持全网络配置,只要配置了中间层,可以选择连接哪个中间层的服务程序.客户端可以进 ...

  4. 网络支持IPV6地址测试校验与思考

    概述 大背景:随着移动端的快速扩张,互联网的规模越来越广阔,早于2011年耗尽的IPV4地址越来越无法满足互联网的网络地址需求,IPV6地址推广进入快车道.实际情况:近期公司应上级部门邀请对公司的主域 ...

  5. JavaSE——TCP网络编程(二)

    ServerSocket 类与Socket 类的不同用法: ServerSocket类: 创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如:    Serv ...

  6. 10 - JavaSE之网络编程

    网络编程 网络通信协议分层思想 为什么要分层呢?因为整个网络协议非常复杂,要涉及到方方面面的知识,而且还有对底层硬件的操作,利用分层的思想,我们可以将复杂的通信协议分割成一层层的形式,上一层可以调用下 ...

  7. Java中的网络支持InetAddress&URL

    针对网络通信的不同层次,Java提供的网络功能有四大类 InetAddress:用于标识网络上的硬件资源.(说白了就是IP地址的相关信息) URL:统一资源定位符,通过URL可以直接读取或写入网络上的 ...

  8. javase的网络编程(InetAddress,UDP,TCP,URL,Socket,DatagramSocket)

    通过一段时间对java网络编程相关内容的学习,写下这篇随笔,对这一部分的知识进行梳理和总结. 网络编程 一.网络编程三要素: IP地址:网络会给每个联网的主机分配一个数字的编码地址,该地址就是IP地址 ...

  9. QEMU支持的网络模式

    网络是现代计算机系统不可或缺的一部分,QEMU也对虚拟机提供丰富的网络支持.qemu-kvm中主要给客户机提供了如下4种不同模式的网络. (1)基于网桥(Bridge)的虚拟网卡 (2)基于NAT(N ...

随机推荐

  1. smack

    XMPP/Smack/Openfire javax.net.ssl.SSLException: Received fatal alert: internal_error 解决: 1.在链接openfi ...

  2. HTML5设计原理

    HTML5是Web标准的巨大飞跃,它为什么要包含那些东西,它背后的设计原则是什么? <JavaScript DOM编程艺术>和<HTML5 For Web Designer>作 ...

  3. selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。

    转自:https://blog.csdn.net/xxj19950917/article/details/73002046

  4. JavaScript高级程序设计学习笔记第二章

    1.向 HTML 页面中插入 JavaScript 的主要方法,就是使用<script>元素 2.HTML 4.01中定义了<script>元素的六个属性(方便记忆,可将6个属 ...

  5. c# 任务栏托盘图标鼠标进入MouseEnter和鼠标离开MouseLeave实现

    c#的任务栏托盘图标控件NotifyIcon只有MouseMove事件,MouseMove事件刷新很快,很不好用,而且我们有时需要鼠标进入和离开的事件,但是不知道c#怎么回事,没有提供,那么就只能自己 ...

  6. 《精通Spring4.X企业应用开发实战》读后感第一章

    Rod Johnson在2002年,编写了interface21框架,spring就是基于此.Spring于2004年3月24日发布了1.0 Spring遵循的理念“”好的设计优于具体实现,代码应易于 ...

  7. UVa 11404 Palindromic Subsequence (LCS)

    题意:给定一个字符串,问删除一些字符,使得它成为一个最长回访串,如果有多个,输出字典序最小的那个. 析: 我们可以把原字符串反转,然后求两个串的LCS,就得到最长回文串,不过要注意一些细节. 代码如下 ...

  8. Django 之验证码实现

    1. django-simple-captcha 模块 安装 django-simple-captcha pip install django-simple-captcha pip install P ...

  9. EIP权限工作流平台-移动端

  10. 访问WEB-INF下JSP资源的几种方式(转)

    访问WEB-INF下JSP资源的几种方式 方法一: 本来WEB-INF中的jsp就是无法通过地址栏访问的,所以安全. 如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置ser ...