博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用JDK原生api进行网络请求并比较
阅读量:6833 次
发布时间:2019-06-26

本文共 2668 字,大约阅读时间需要 8 分钟。

3.1.1知识概述

使用原生API发送Get请求

package cn.itcast.spider;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;/** 使用JDK的api进行get请求 1.在使用httpurlconnection时,默认就是get请求。如何改成post请求? 2.http协议中,可以指定header,想添加user-agent */public class BasicHttpGet {   public static void main(String[] args) throws Exception {      //1.指定一个url      String domain = "http://www.itcast.cn";      //2.发起一个请求      URL url = new URL(domain);      HttpURLConnection conn = (HttpURLConnection)url.openConnection();      //添加请求方式      conn.setRequestMethod("GET");      //添加请求头------如果编写爬虫,真实浏览器发送的header都拷贝      conn.setRequestProperty("Accept", "text/html");      /**       Accept:text/html       **/      //3.获取返回值      InputStream inputStream = conn.getInputStream();      //3.1 将输入流转换字符串      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));      //3.2 一次读取bufferReader的数据      String line =null;      while((line=bufferedReader.readLine())!=null){         System.out.println(line);      }      //4.关闭流      inputStream.close();   }}

Java网络请求原生API-Post请求

package cn.itcast.spider;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;/** 使用JDK的api进行POST请求 1.在使用httpurlconnection时,默认就是get请求。如何改成post请求? 第一步:设置请求方法 setRequestMethod("POST") 第二步:设置doOutPut(true) 2.http协议中,可以指定header,想添加user-agent */public class BasicHttpGet {   public static void main(String[] args) throws Exception {      //1.指定一个url      String domain = "http://www.itcast.cn";      //2.发起一个请求      URL url = new URL(domain);      HttpURLConnection conn = (HttpURLConnection)url.openConnection();      //2.1 添加请求方式      conn.setRequestMethod("POST");      //2.2 添加请求头------如果编写爬虫,真实浏览器发送的header都拷贝      conn.setRequestProperty("Accept", "text/html");      /**       Accept:text/html       **/      //2.3 发送一些数据      conn.setDoOutput(true);      OutputStream outputStream = conn.getOutputStream();      // 编写什么样格式的数据?  username=zhangsan&passwd=123      outputStream.write("username=zhangsan&passwd=123".getBytes());      outputStream.flush();      outputStream.close();      //3.获取返回值      InputStream inputStream = conn.getInputStream();      //3.1 将输入流转换字符串      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));      //3.2 一次读取bufferReader的数据      String line =null;      while((line=bufferedReader.readLine())!=null){         System.out.println(line);      }      //4.关闭流      inputStream.close();   }}

转载于:https://blog.51cto.com/13587708/2393715

你可能感兴趣的文章
Linux防火墙
查看>>
网络安全与管理精讲视频笔记6-CA认证中心配置及实现SSL.Web加密通信
查看>>
如何通过一个值查找到值所在的SQL数据库表
查看>>
Python学习—面向对象学习上
查看>>
3.9 对称三位素数
查看>>
“旧城改造”的背后——银泰新零售阿里云解决方案(下)
查看>>
云原生生态周报 Vol. 2
查看>>
206. echarts的map地图入门案例
查看>>
一次非常有趣的 SQL 优化经历
查看>>
玩游戏?Linux才高端!
查看>>
桥接,仅主机,NAT模式网卡的配置
查看>>
web普通项目映射为maven项目
查看>>
钜亨×××登录功能是怎么实现的?
查看>>
科略教育—企业管理的六种模式
查看>>
如何用JavaScript写一个区块链?
查看>>
Teams认证话机系列(2)--AudioCodes C450HD
查看>>
JOB_QUEUE_PROCESSES 参数
查看>>
Oracle临时表空间使用分析
查看>>
Web 访问日志分析
查看>>
Android更改Activity样式和隐藏标题
查看>>