HttpURLConnection类的用法

servlet端

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ServerServlet extends HttpServlet {
 public ServerServlet() {
  super();
 }
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  this.doPost(request, response);
 }


 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  //获得响应流,获得输入对象
  response.setCharacterEncoding("utf-8");
  request.setCharacterEncoding("utf-8");
        InputStream inputStream = request.getInputStream();
        PrintWriter out = response.getWriter();
        BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
        System.out.println("进入+"+URLDecoder.decode(reader.readLine(),"utf-8") );
        out.print(URLEncoder.encode("响应","utf-8") );
        out.close();
 }

 /**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occurs
  */
 public void init() throws ServletException {
  // Put your code here
 }

}

客户端测试

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;


public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
     String requestString = "我们要以流发送的数据...";
         HttpURLConnection httpURLConnection;
         try {
             //建立链接
             URL gatewayUrl = new URL("http://localhost:8080/servlet/server");
             httpURLConnection = (HttpURLConnection) gatewayUrl.openConnection();

             //设置连接属性
             httpURLConnection.setDoOutput(true);
             httpURLConnection.setDoInput(true);
             httpURLConnection.setUseCaches(false);
             //设置请求属性
             httpURLConnection.setRequestMethod("POST");
             httpURLConnection.setRequestProperty("Content-Type", "application/octet-stream");
             PrintWriter writer=new PrintWriter(httpURLConnection.getOutputStream());
             writer.write(URLEncoder.encode("我来了","utf-8"));
             writer.close();
             //获得响应状态 只有调用这个方法时真正去访问service方法
             int responseCode = httpURLConnection.getResponseCode();
             if(httpURLConnection.HTTP_OK==responseCode)
             {
              BufferedReader reader=new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
              System.out.println( URLDecoder.decode(reader.readLine(), "utf-8") );
             }
         }catch(Exception ex)
         {
          ex.printStackTrace();
         }
           
 }

}

    如果你使用代理访问外面的网络的话可以在程序中添加上下面的代码
    System.getProperties().put("proxySet", "true");
    System.getProperties().put("proxyHost", "10.154.134.110");
    System.getProperties().put("proxyPort", "8080");

原文地址:https://www.cnblogs.com/liaomin416100569/p/9331717.html