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实现的更多相关文章

  1. Java初始阶段

    初时接触感觉Java与C语言有很多异曲同工之处. Java起源: Java之父:James Gosling 正式发布时间:1995年5月23日 其特点为:简单.面向对象.可移植.多线程.动态 其编译后 ...

  2. Java之初识

    今天开始学习Java 1.什么是Java? Java是1995年由sun公司推出的一门极富创造力的面向对象编程语言,是由Java之父詹姆斯格斯林博士设计的. Java名字的由来:据说,java刚刚设计 ...

  3. Java匹马行天下之JavaSE核心技术——Java基础语法

    Java基础语法 一.   认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...

  4. 【Java初探01】——Java简介及相关

    Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java程序可以在任何计算机,操作系统和支持的Java的 ...

  5. IM聊实现客户端之间信息交互需求文档

    终于放假啦~之前学习太忙很多知识点都没有写博客,可能自己学会了但没有分享给大家,接下来几天我可能把一些学过的东西整理成博客发出来供大家相互学习交流. 需求分析说明书 HuaXinIM聊软件 潘浩 20 ...

  6. java之API初识

    API概念 API(Application Programming Interface),应用程序编程接口.JavaAPI是一本程序员的字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底层的 ...

  7. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  8. HBase JavaAPI

    一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这 ...

  9. 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程

    本博文的主要内容有   kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...

随机推荐

  1. WriteableBitmap(三) 扩展

    backbuffer使用您在创建WriteableBitmap时指定的像素格式,还有一个BackBufferStride属性,您可以使用它来创建一个合适的存储映射函数. 添加一些方法来设置和获取特定情 ...

  2. Tensorflow从源代码编译2

    https://blog.csdn.net/qq_37674858/article/details/81095101 https://blog.csdn.net/yhily2008/article/d ...

  3. 配置使用sourcemap调试vue源码爬坑

    环境: Google Chrome  V72.0.3626.109 vue-dev V 2.6.10 爬坑的乐趣就不说了(我恨啊),以下说一下出坑要点 1. 在vue-dev的package.json ...

  4. poj3321-Apple Tree(DFS序+树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36442   Accepted: 10894 Desc ...

  5. PHP 生成16 uuid

    从c# 翻译而来 <?php $i=1; $guidStr=string_make_guid(); echo $guidStr."\n"; $byte_array = unp ...

  6. MathJax $TeX$ Test Page

    MathJax TeX Test Page When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are ...

  7. Oracle EBS - Setup: 配置文件Profile

    http://blog.csdn.net/lfl6848433/article/details/8696939 Oracle EBS - Setup: 配置文件Profile 1.诊断Diagnost ...

  8. Windows Phone 放开政策 - 应用内支付(IAP)可加入三方支付

    Windows Phone 应用商店在 今年(2013)11月04号 修改了商店政策 允许公司账户的应用使用三方支付SDK. 通过 App certification requirements cha ...

  9. WPF核心对象模型-类图和解析

    DispatcherObject是根基类,通过继承该类,可以得到访问创建该对象的UI线程的Dispatcher对象的能力.通过Dispatcher对象,可以将代码段合并入该UI线程执行. Depend ...

  10. Sql 辅助

    1.清空数据表 SELECT 'TRUNCATE TABLE '+name AS TruncateSql FROM sys.tables