全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java模拟http的Get/Post请求,并设置ip与port代理的方法

本文涉及3个基本点:

1、因为很多公司的内网都设有代理,浏览器通过ip与port上网,而java代码模拟http get方式同样需要外网代理;

2、Java实现http的Get/Post请求代码;

3、主要是设置HttpURLConnection请求头里面的属性

比如Cookie、User-Agent(浏览器类型)等等。

比如:http请求中添加Header

conn.setRequestProperty("Authorization", authorization);

注:我就在网上找的一段Get/Post模拟请求代码,添加了下代理的配置,整合完成的。

package com.pasier.quanzi.web.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {

  public static void main(String[] args) {
    // 如果不设置,只要代理IP和代理端口正确,此项不设置也可以
    System.getProperties().setProperty("http.proxyHost", "10.22.40.32");
    System.getProperties().setProperty("http.proxyPort", "8080");
    // 判断代理是否设置成功
    // 发送 GET 请求
    System.out.println(sendGet(
        "http://www.baidu.com",
        "param1=xxx&param2=yyy"));
    // 发送 POST 请求
  }

  /**
   * 向指定URL发送GET方法的请求
   * 
   * @param url
   *      发送请求的URL
   * @param param
   *      请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
   * @return URL 所代表远程资源的响应结果
   */
  public static String sendGet(String url, String param) {
    String result = "";
    BufferedReader in = null;
    try {
      String urlNameString = url + "?" + param;
      URL realUrl = new URL(urlNameString);
      // 打开和URL之间的连接
      URLConnection connection = realUrl.openConnection();
      // 设置通用的请求属性
      connection.setRequestProperty("accept", "*/*");
      connection.setRequestProperty("connection", "Keep-Alive");
      connection.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 建立实际的连接
      connection.connect();
      // 获取所有响应头字段
      Map<String, List<String>> map = connection.getHeaderFields();
      // 遍历所有的响应头字段
      for (String key : map.keySet()) {
        System.out.println(key + "--->" + map.get(key));
      }
      // 定义 BufferedReader输入流来读取URL的响应
      in = new BufferedReader(new InputStreamReader(
          connection.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("发送GET请求出现异常!" + e);
      e.printStackTrace();
    }
    // 使用finally块来关闭输入流
    finally {
      try {
        if (in != null) {
          in.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }
    return result;
  }

  /**
   * 向指定 URL 发送POST方法的请求
   * 
   * @param url
   *      发送请求的 URL
   * @param param
   *      请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
   * @return 所代表远程资源的响应结果
   */
  public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
      URL realUrl = new URL(url);
      // 打开和URL之间的连接
      URLConnection conn = realUrl.openConnection();
      // 设置通用的请求属性
      conn.setRequestProperty("accept", "*/*");
      conn.setRequestProperty("connection", "Keep-Alive");
      conn.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 发送POST请求必须设置如下两行
      conn.setDoOutput(true);
      conn.setDoInput(true);
      // 获取URLConnection对象对应的输出流
      out = new PrintWriter(conn.getOutputStream());
      // 发送请求参数
      out.print(param);
      // flush输出流的缓冲
      out.flush();
      // 定义BufferedReader输入流来读取URL的响应
      in = new BufferedReader(
          new InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("发送 POST 请求出现异常!" + e);
      e.printStackTrace();
    }
    // 使用finally块来关闭输出流、输入流
    finally {
      try {
        if (out != null) {
          out.close();
        }
        if (in != null) {
          in.close();
        }
      } catch (IOException ex) {
        ex.printStackTrace();
      }
    }
    return result;
  }
}

以上这篇java模拟http的Get/Post请求,并设置ip与port代理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# get  # post请求  # Java使用GZIP压缩导致HTTP请求返回乱码问题解决  # java 伪造http请求ip地址的方法  # Java利用Request请求如何获取IP地址对应的省份、城市详解  # Java利用Request请求获取IP地址的方法详解  # Java如何获取真实请求IP  # 给大家  # 应该是  # 我就  # 遍历  # 希望能  # 这篇  # 此项  # 小编  # 大家多多  # 两行  # 内网  # 主要是  # 在网上  # io  # util  # Map  # public  # URLConnection  # List  # BufferedReader 


相关文章: 小型网站建站如何选择虚拟主机?  寿县云建站:智能SEO优化与多行业模板快速上线指南  建站主机选哪家性价比最高?  html制作网站的步骤有哪些,iapp如何添加网页?  网站制作企业,网站的banner和导航栏是指什么?  c# await 一个已经完成的Task会发生什么  沈阳制作网站公司排名,沈阳装饰协会官方网站?  教学网站制作软件,学习*后期制作的网站有哪些?  建站10G流量真的够用吗?如何应对访问高峰?  如何通过.red域名打造高辨识度品牌网站?  c++ stringstream用法详解_c++字符串与数字转换利器  PHP正则匹配日期和时间(时间戳转换)的实例代码  制作公司内部网站有哪些,内网如何建网站?  代购小票制作网站有哪些,购物小票的简要说明?  如何选择PHP开源工具快速搭建网站?  建站与域名管理如何高效结合?  如何在搬瓦工VPS快速搭建网站?  如何在IIS7中新建站点?详细步骤解析  如何通过虚拟主机空间快速建站?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  建站之星安装后界面空白如何解决?  完全自定义免费建站平台:主题模板在线生成一站式服务  北京网站制作的公司有哪些,北京白云观官方网站?  家庭建站与云服务器建站,如何选择更优?  孙琪峥织梦建站教程如何优化数据库安全?  如何高效完成独享虚拟主机建站?  宝塔面板如何快速创建新站点?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  css网站制作参考文献有哪些,易聊怎么注册?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  成都网站制作报价公司,成都工业用气开户费用?  制作证书网站有哪些,全国城建培训中心证书查询官网?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  电商平台网站制作流程,电商网站如何制作?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  金*站制作公司有哪些,金华教育集团官网?  如何通过西部数码建站助手快速创建专业网站?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  建站主机选虚拟主机还是云服务器更好?  建站之星如何快速生成多端适配网站?  Bpmn 2.0的XML文件怎么画流程图  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  韩国服务器如何优化跨境访问实现高效连接?  网站制作免费,什么网站能看正片电影?  建设网站制作价格,怎样建立自己的公司网站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。