http编程(一)使用javaAPI实现
- Java Http编程中常见的实现方式是使用Java 提供的API,另外就是使用Apache提供的 API
- 1、通过Java提供的API实现Http编程
- 类:URL:类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
- HttpURLConnection:支持 HTTP 特定功能的 URLConnection
- URLConnection 抽象类是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源
- 1.1、下载数据(以下载一直图片为例)
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- public class DownloadImage {
- public static void main(String[] args) throws IOException {
- //资源的URL:就是一个资源的连接,URL中的参数淡然也可以是网上的一些图片或者其他资源的连接了
- //例如把http://localhost:8080/Day_0818/aa.jpg换为http://home.cnblogs.com/images/logo_home.gif下载博客园的logo,当然存储 到时候要改后缀了
- URL url = new URL("http://localhost:8080/Day_0818/aa.jpg");
- //通过url获取一个封装了http协议的URL连接对象:HttpURLConnection
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- //设置连接的请求方式,因为是获取数据,所以请求方式为GET:必须大写
- connection.setRequestMethod("GET");
- //设置是否能够获取连接的输入流,默认就是true,也可以不写这条语句
- connection.setDoInput(true);
- //有了连接,就要打开连接
- connection.connect();
- //获取响应码
- int code = connection.getResponseCode();
- //响应码是200则表示连接成功响应
- if(200 == code){
- //获取连接 的输入流
- InputStream is = connection.getInputStream();
- //文件输出流对象,(创建存放资源的文件)
- FileOutputStream fos = new FileOutputStream("e:\\aa.jpg");
- //字节数组,我理解为输入流和输出流的一个中介,输入流把数据放到数组里让输出流读取
- byte[] b = new byte[1024];
- int length = -1;
- while((length = is.read(b)) != -1){
- fos.write(b, 0, length);
- fos.flush();
- }
- //关闭流
- fos.close();
- }
- }
- }
- ----------------------------------------------------------------------------------------
- //post方式来模拟登录。
- /*
- 需要创建LoginServlet类接收数据
- */
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- //http://localhost:8080/MyServer/loginServlet?username=admin&userpwd=111
- public class URLDemo2 {
- public static void main(String[] args) throws Exception {
- String path = "http://localhost:8080/MyServer/loginServlet";
- URL url = new URL(path);
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("POST");
- connection.setConnectTimeout(30000);
- connection.setDoInput(true);
- connection.setDoOutput(true);
- //username=admin&userpwd=111
- /*
- * 将用户名和密码改成用户输入的数据。
- */
- OutputStream os = connection.getOutputStream();
- os.write("username=admin&userpwd=111".getBytes());
- connection.connect();
- int code = connection.getResponseCode();
- if(code==200){
- InputStream is = connection.getInputStream();
- byte[] b = new byte[1024];
- int length = is.read(b);
- System.out.println(new String(b,0,length));
- is.close();
- }
- }
- }
http编程(一)使用javaAPI实现的更多相关文章
- Java初始阶段
初时接触感觉Java与C语言有很多异曲同工之处. Java起源: Java之父:James Gosling 正式发布时间:1995年5月23日 其特点为:简单.面向对象.可移植.多线程.动态 其编译后 ...
- Java之初识
今天开始学习Java 1.什么是Java? Java是1995年由sun公司推出的一门极富创造力的面向对象编程语言,是由Java之父詹姆斯格斯林博士设计的. Java名字的由来:据说,java刚刚设计 ...
- Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法 一. 认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...
- 【Java初探01】——Java简介及相关
Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java程序可以在任何计算机,操作系统和支持的Java的 ...
- IM聊实现客户端之间信息交互需求文档
终于放假啦~之前学习太忙很多知识点都没有写博客,可能自己学会了但没有分享给大家,接下来几天我可能把一些学过的东西整理成博客发出来供大家相互学习交流. 需求分析说明书 HuaXinIM聊软件 潘浩 20 ...
- java之API初识
API概念 API(Application Programming Interface),应用程序编程接口.JavaAPI是一本程序员的字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底层的 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- HBase JavaAPI
一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这 ...
- 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程
本博文的主要内容有 kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...
随机推荐
- 整数重复的第n位计算公式
513不停的重复形成513513513....,求第n位是几的计算公式.
- Android中Activity启动过程探究
首先追溯到Activity的启动,随便启动一个自己写的demo项目,使用DDMS进行debug标记,然后在Debug中把主线程暂停,可以看到调用栈.如下图所示: 于是我们先看android.app.A ...
- 20155320 2016-2017-2 《Java程序设计》第7周学习总结
20155320 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 时间与日期 认识时间与日期 时间的度量 GMT(Greenwich Mean Time)时间 ...
- Hdu428 漫步校园 2017-01-18 17:43 88人阅读 评论(0) 收藏
漫步校园 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- C++中的矩阵运算
C++中的矩阵运算 1. 2阶矩阵的逆矩阵公式
- STL中的内存与效率
STL中的内存与效率 1. 使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下. 关于STL容器,最令人称赞的特性之一就是是只要不超过它们的最大大小,它们就可以自动增长到足 ...
- 全自动baidu云盘下载脚本
20141231<吃元宵>孔云龙_6平米.MP3 20141231<家庭论>李云杰_6平米.MP3 20141231<劫皇杠>李昊洋_6平米.MP3 2014123 ...
- 微软官方实例 RazorPagesMovie 在 asp.net core 2.1 版本下的实战
微软官方实例 RazorPagesMovie 在 asp.net core 2.1 版本下的实战 友情提示: 操作系统: MacOS 10.13.5 dotnet core: version 2.1. ...
- python3--django for 循环中,获取序号
功能需求:在前端页面中,for循环id会构不成连续的顺序号,所以要找到一种伪列的方式来根据数据量定义序号 因此就用到了在前端页面中的一个字段 forloop.counter,完美解决 <tbod ...
- React跨域
React跨域 一.使用http-proxy-middleware中间件解决跨域问题 1.安装包: npm install http-proxy-middleware --save-dev 2.配置: ...