• java 访问HTTPS rest服务


    import java.io.*;
    import java.net.*;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    import javax.net.ssl.*;

    import org.json.JSONObject;

    public class AgsPortalLogic {

    /**
    * @param args
    */
    private static class TrustAnyTrustManager implements X509TrustManager {

    public void checkClientTrusted(X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    public void checkServerTrusted(X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    public X509Certificate[] getAcceptedIssuers() {
    return new X509Certificate[] {};
    }
    }

    private static class TrustAnyHostnameVerifier implements HostnameVerifier {
    public boolean verify(String hostname, SSLSession session) {
    return true;
    }
    }
    public static void main(String[] args) throws Exception {
    InputStream in = null;
    OutputStream out = null;
    byte[] buffer = new byte[4096];
    String str_return = "";
    try {
    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },
    new java.security.SecureRandom());
    URL console = new URL(
    "https://portal190182.arcgiscloud.com/arcgis/sharing/generateToken");
    HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
    conn.setRequestMethod("POST");
    conn.setSSLSocketFactory(sc.getSocketFactory());
    conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
    conn.setRequestProperty("Accept", "application/json");
    conn.setDoInput(true);
    conn.setDoOutput(true);

    String inpputs="username=arcgis&password=arcgis123&client=requestip&f=json";
    OutputStream os = conn.getOutputStream();
    os.write(inpputs.getBytes());
    os.close();
    conn.connect();

    InputStream is = conn.getInputStream();
    // // DataInputStream indata = new DataInputStream(is);
    BufferedReader reader=new BufferedReader(new InputStreamReader(is));
    String ret = "";
    while (ret != null) {
    ret = reader.readLine();
    if (ret != null && !ret.trim().equals("")) {
    str_return = str_return
    + ret;
    }



    }

    conn.disconnect();
    } catch (ConnectException e) {
    System.out.println("ConnectException");
    System.out.println(e);
    throw e;

    } catch (IOException e) {
    System.out.println("IOException");
    System.out.println(e);
    throw e;

    } finally {
    try {
    in.close();
    } catch (Exception e) {
    }
    try {
    out.close();
    } catch (Exception e) {
    }
    }
    JSONObject jsonobject = new JSONObject(str_return);
    System.out.println(jsonobject.getString("token"));

    }

    }

  • 相关阅读:
    市场规模的估算
    C#中的线程(一)入门 转载
    2.设计模式-Abstract Factory 抽象工厂模式
    1.设计模式
    Microsoft.Jet.OLEDB.4.0读取EXCEL数据
    转载--加盐密码哈希:如何正确使用
    ragel学习资源整合
    开源库xlslib跨平台编译
    WPF开源框架以及经典博客
    (转载)值得推荐的C/C++框架和库 (真的很强大)
  • 原文地址:https://www.cnblogs.com/dubaokun/p/3205440.html
Copyright © 2020-2023  润新知