zoukankan      html  css  js  c++  java
  • JAVA post和get方式请求远程HTTP接口

    java发送http协议 一般对方都会限定post或者get 这里就是可用的方法

    首先是POST方式

    传入参数为json 可改为任何类型

    public class HttpPost implements Runnable {
        
        private String url_str;
        
        public HttpPost () {
            
        }
        
        public HttpPost (String url, boolean isPost) {
            this.url_str = url;
        }
        
        @Override
        public void run() {
            JSONObject param_json = new JSONObject();
            
            URL url = null;
            PrintWriter send_out = null;
            BufferedReader send_in = null;
            String result = "";
            try {
                //----------------------------------------------------------//
                //http://blog.csdn.net/thl331860203/article/details/51783434//
                //JAVA POST请求远程HTTP接口                                   //
                //----------------------------------------------------------//
                url = new URL(this.url_str);
                //打开和URL之间的连接 
                URLConnection connection = url.openConnection();
                //设置通用的请求属性  
                connection.setRequestProperty("accept", "*/*");  
                connection.setRequestProperty("connection", "Keep-Alive");  
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
                connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                end_out = new PrintWriter(connection.getOutputStream());
           //发送请求参数 send_out.print(param_json); //flush输出流的缓冲 send_out.flush();//定义BufferedReader输入流来读取URL的响应 send_in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while((line = send_in.readLine()) != null){ result += line; } getResultData(result); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void getResultData(String result) { } }

    接下来是Get方式

    public class HttpGet implements Runnable {
        
        private String url_str;public HttpGet() {
            
        }
        
        public HttpGet(String url, boolean isPost) {
            this.url_str = url;
        }
        
        @Override
        public void run() {
            JSONObject param_json = new JSONObject();
            
            URL url = null;
            PrintWriter send_out = null;
            BufferedReader send_in = null;
            String result = "";
            try {
                //----------------------------------------------------------//
                //http://blog.csdn.net/thl331860203/article/details/51783434//
                //JAVA POST请求远程HTTP接口                                   //
                //----------------------------------------------------------//
                url = new URL(this.url_str);
                //打开和URL之间的连接 
                URLConnection connection = url.openConnection();
                //设置通用的请求属性  
                connection.setRequestProperty("accept", "*/*");  
                connection.setRequestProperty("connection", "Keep-Alive");  
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
                connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");//建立连接
                connection.connect();
                //定义BufferedReader输入流来读取URL的响应
                send_in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                while((line = send_in.readLine()) != null){
                    result += line;
                }
                getResultData(result);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        public void getResultData(String result) {
    
        }
    }

    关于实现

    HttpGet test = new HttpGet("");
    Thread thread = new Thread(test);
    thread.start();

    因为JAVA在某版本之后 为了防止协议没有响应 所以不允许直接使用这个方法 一定要在子线程中使用

    以上除了代码以外都是自己的理解 如果不对 请指出 谢谢

  • 相关阅读:
    动态规划练习 7
    面试经验交流感悟
    反转链表
    动态规划练习 6
    动态规划练习 4
    动态规划练习 9
    动态规划练习 12
    动态规划练习 8
    动态规划练习 13
    动态规划练习 11
  • 原文地址:https://www.cnblogs.com/PandaQ/p/8479845.html
Copyright © 2011-2022 走看看