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 ...
随机推荐
- python编码(四)
一.预备知识 字符集 1, 常用字符集分类 ASCII及其扩展字符集作用:表语英语及西欧语言.位数:ASCII是用7位表示的,能表示128个字符:其扩展使用8位表示,表示256个字符.范围:ASCII ...
- HDU6029 Happy Necklace 2017-05-07 19:11 45人阅读 评论(0) 收藏
Happy Necklace Time Limit: ...
- bolg迁移
博客已迁移至:http://www.s0nnet.com 欢迎大家继续关注!!! 2015-7-4
- Toad 实现 SQL 优化
It is very easy for us to implement sql tuning by toad. We need to do is just give complex sql stat ...
- 申请Let's Encrypt通配符HTTPS证书
./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d "*.xxx.com" --ma ...
- 设计模式之工厂模式(Factory Pattern)
一.什么是工厂模式? 1.“简单工厂模式”,Simple Factory Pattern 也就是常用的在Factory类中定义静态方法负责new对象的方式. 摘要中提到过“严格地说,这种被称为“简单工 ...
- C#全局键盘监听(Hook)
一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...
- wpf(使用定时器)使用定时器操作UI界面
在项目实践中,我们 可能会遇到需要将一些控件上显示的内容只显示一段时间过后清空. 下面我们来实现这种操作: 首先需要注意的是:在wpf中涉及到界面操作的话,一定要使用定时器DispatcherTime ...
- asp.net core 使用identityServer4的密码模式来进行身份认证(一)
IdentityServer4是ASP.NET Core的一个包含OpenID和OAuth 2.0协议的框架.具体Oauth 2.0和openId请百度. 前言本博文适用于前后端分离或者为移动产品来后 ...
- C# DataTable导出EXCEL后身份证、银行卡号等长数字信息显示乱码解决
在DataTable导出EXCEL后发现有些格式显示有问题,比如身份证.银行卡号等大于11位的数字显示为科学计数法.13681-1等 带中划线的两段数字显示为日期格式等. 处理方法如下: public ...