Java网络教程:URL + URLConnection

原文地址  译者:梁远铭

 

目录

  • HTTP GET和POST
  • 从URLs到本地文件

在java.net包中包含两个有趣的类:URL类和URLConnection类。这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接。下面是一个简单的代码例子:

URL url = new URL("http://jenkov.com");
URLConnection urlConnection = url.openConnection();
InputStream input = urlConnection.getInputStream();
int data = input.read();
while(data != -1){
System.out.print((char) data);
data = input.read();
}
input.close();

HTTP GET和POST

默认情况下URLConnection发送一个HTTP GET请求到web服务器。如果你想发送一个HTTP POST请求,要调用URLConnection.setDoOutput(true)方法,如下:

URL url = new URL("http://jenkov.com");
URLConnection urlConnection = url.openConnection();
urlConnection.setDoOutput(true);

一旦你调用了setDoOutput(true),你就可以打开URLConnection的OutputStream,如下:

OutputStream output = urlConnection.getOutputStream();

你可以使用这个OutputStream向相应的HTTP请求中写任何数据,但你要记得将其转换成URL编码(关于URL编码的解释,自行Google)(译者注:具体名字是:application/x-www-form-urlencoded MIME 格式编码)。
当你写完数据的时候要记得关闭OutputStream。

从URLs到本地文件

URL也被叫做统一资源定位符。如果你的代码不关心文件是来自网络还是来自本地文件系统,URL类是另外一种打开文件的方式。
下面是一个如何使用URL类打开一个本地文件系统文件的例子:

URL url = new URL("file:/c:/data/test.txt");
URLConnection urlConnection = url.openConnection();
InputStream input = urlConnection.getInputStream();
int data = input.read();
while(data != -1){
System.out.print((char) data);
data = input.read();
}
input.close();

注意:这和通过HTTP访问一个web服务器上的文件的唯一不同处就是URL:”file:/c:/data/test.txt”。 

时间: 2024-09-13 11:37:17

Java网络教程:URL + URLConnection的相关文章

Java网络教程

本系列尚未翻译完成,有兴趣参与翻译的请在本文评论处留言. 1 Java 网络教程: 基础 2 Java 网络教程: Socket 3 Java 网络教程: ServerSocket 4 Java Networking: UDP DatagramSocket 5 Java 网络教程: URL + URLConnection 6 Java网络教程:JarURLConnection 7 Java 网络教程: InetAddress 8 Java网络教程:Protocol Design 转载自 并发编程

Java 网络教程: JarURLConnection

Java 网络教程: JarURLConnection Java 中 JarURLConnection 类用来链接 Java 的 Jar 包文件.一旦连接成功,你就可以获取到 Jar 包里面文件的内容. 下面是一个简单的实例: String urlString = "http://butterfly.jenkov.com/" + "container/download/" + "jenkov-butterfly-container-2.9.9-beta.j

Java网络教程:Protocol Design

原文地址  译者:司余 如果设计一个客户端到服务器的系统,那么同时也需要设计客户端和服务器之间的通信协议.当然,有时候协议已经为你决定好了,比如HTTP.XML_RPC(http response 的 body 使用xml).或者SOAP(也是http response 的 body 使用xml).设计客户端到服务端协议的时候,一旦协议决定开启一会儿,来看一些你必须考虑的地方: 1. 客户端到服务端的往返通讯 2.区分请求结束和响应结束. 3.防火墙穿透 客户端-服务端往返 当客户端和服务端通信

Java 网络教程: InetAddress

Java 网络教程: InetAddress 创建一个 InetAddress 实例 InetAddress 的内部方法 InetAddress 是 Java 对 IP 地址的封装.这个类的实例经常和 UDP DatagramSockets 和 Socket,ServerSocket 类一起使用. 创建一个 InetAddress 实例 InetAddress 没有公开的构造方法,因此你必须通过一系列静态方法中的某一个来获取它的实例. <!–more–> 下面是为一个域名实例化 InetAdd

Java网络教程-基础

原文地址   译者:贾毅  校对:方腾飞 Java提供了非常易用的网络API,调用这些API我们可以很方便的通过建立TCP/IP或UDP套接字,在网络之间进行相互通信,其中TCP要比UDP更加常用,但在本教程中我们对这两种方式都有说明. 在网站上还有其他三个与Java网络相关的教程,如下: 1.Java IO 教程 2.Java NIO 教程 3.Java服务器多线程教程 (参与翻译可以联系我们) 尽管Java网络API允许我们通过套接字(Socket)打开或关闭网络连接,但所有的网络通信均是基

Java 网络教程: ServerSocket

用java.net.ServerSocket实现java服务通过TCP/IP监听客户端连接,你也可以用Java NIO 来代替java网络标准API,这时候需要用到 ServerSocketChannel. 创建一个 ServerSocket连接 以下是一个创建ServerSocket类来监听9000端口的一个简单的代码 ServerSocket serverSocket = new ServerSocket(9000); 监听请求的连接 要获取请求的连接需要用ServerSocket.acce

java网络编程-使用URLConnection传递参数乱码,求大神们解决

问题描述 使用URLConnection传递参数乱码,求大神们解决 发送端: public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.

Java网络教程:JarURLConnection

Java的JarURLConnection类用来连接Java Jar文件.一旦连接上,你可以获取Jar文件的信息.一个简单的例子如下: String urlString = "http://butterfly.jenkov.com/" + "container/download/" + "jenkov-butterfly-container-2.9.9-beta.jar"; URL jarUrl = new URL(urlString); Jar

Java网络教程: InetAddress

InetAddress是ip地址的java表示方式.这个类的实例也可以用在UDP DatagramSockets.普通Socket类和ServerSocket类. 创建InetAddress实例 InetAddress没有public构造器,必须通过一系列的静态方法获取实例.下面是如何获取一个域名的InetAddress实例: 1 InetAddress address = InetAddress.getByName("jenkov.com"); 下面是如何获取匹配字符串表示ip地址的