加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java调用http保留访问状态

发布时间:2020-12-15 06:40:35 所属栏目:Java 来源:网络整理
导读:? package com.coracle; import com.coracle.yk.xframework.util.yunTongXun.HttpRequest; import java.io.* ; java.net.HttpURLConnection; java.net.URL; /** * Created by huangbaidong * 2017/4/12. */ public class TestHttpStatus { static void main(

?

package com.coracle;

import com.coracle.yk.xframework.util.yunTongXun.HttpRequest;

import java.io.*;
 java.net.HttpURLConnection;
 java.net.URL;

/**
 * Created by huangbaidong
 * 2017/4/12.
 */
public class TestHttpStatus {

    static void main(String[] args) throws Exception {
        try {
            //1、先登录获取SessionId也就是cookie
            String sessionId = login();
            2、然后调用其他接口,带上cookie,
            String result = httpRequest("http://localhost:8083/xweb/api/v2/order/list","{}",sessionId);
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    
     * 访问其他有权限控制的接口
     * @param url  自己传URL
     *  json
     *  sessionId
     * @return
     * @throws Exception
     */
    static String httpRequest(String url,String json,String sessionId)  使用POST方式向目的服务器发送请求
        URL connect;
        OutputStreamWriter paramout = null;
        BufferedReader reader = ;

        StringBuffer data = new StringBuffer();
         {
            connect =  URL(url);
            HttpURLConnection connection = (HttpURLConnection) connect.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type","application/json");
            connection.setRequestProperty("Cookie"sessionId);
            paramout = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
            paramout.write(json);
            paramout.flush();

            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),1)">));
            String line;
            while ((line = reader.readLine()) != ) {
                data.append(line);
            }
        }  (Exception e) {
            e.printStackTrace();
        } finally {
                if (paramout != ) {
                    paramout.close();
                }
                if (reader != ) {
                    reader.close();
                }
            }  (IOException ex) {
                ex.printStackTrace();
            }
        }
        return data.toString();
    }


    
     * 登录获取session
     *  IOException
     static String login()  IOException {
        URL url = new URL("http://localhost:8083/xweb/api/v2/login/userLogin?loginName=positec&password=qwe123");
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setRequestMethod("POST");
        conn.setDoOutput();
        conn.setRequestProperty("Content-Type",1)">);
        PrintWriter out =  PrintWriter(conn.getOutputStream());
        String str = "url = " + url;
        out.println(str);
        out.flush();
        BufferedReader in = ;
        in = new InputStreamReader(conn.getInputStream(),1)">));
        String destStr = "";
        String inputLin = "";
        while((inputLin = in.readLine()) !=  ){
            destStr +=  inputLin;
        }
        System.out.println(destStr);
        String session_value = conn.getHeaderField("Set-Cookie");
        String[] sessionId = session_value.split(";");第一登录,取出SESSIONID
        System.out.println("Session Value = " + session_value);
        return sessionId[0];
    }
}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读