使用JDK原生api进行网络请求并比较

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值