«

Https联网工具类

时间:2024-3-2 17:08     作者:韩俊     分类: PHP


Https联网工具类 get post

调用时 只需传入url,和要提交的参数queryString 有cookie时也可以传入

放回的是字符串 连接方式我在Http里解决了你们只需要拼接对

拼接格式 路径:https://emall.licaike.com/weixin/web/bind 参数:loginInit=loginInit&knowChannel=APP_LCK_ADR_KC

import java.io.ByteArrayOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;



import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;



import android.util.Log;



public class HttpService {



/* 连接或读取超时单位毫秒 /

private static final int CONNECTION_TIMEOUT = 30000;// 15000



protected static String httpGet(String url, String queryString, String cookie)

throws Exception {



if (isNullEmptyBlank(url)) {

return "url不能为空";

}

if (!isNullEmptyBlank(queryString)) {

url += ("?" + queryString);

}



URL urlPath = null;

HttpURLConnection conn = null;

InputStream is = null;

try {

urlPath = new URL(url);

i("httpGet", "urlPath>>>>>" + urlPath);

conn = (HttpURLConnection) urlPath.openConnection();

conn.setDoInput(true);

conn.setUseCaches(false);

conn.setInstanceFollowRedirects(true);

// 设置连接主机超时(单位:毫秒)

conn.setConnectTimeout(CONNECTION_TIMEOUT);

// 设置从主机读取数据超时(单位:毫秒)

conn.setReadTimeout(CONNECTION_TIMEOUT);

conn.setRequestProperty("Accept", "/");

conn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

conn.setRequestMethod("GET");

if (!isNullEmptyBlank(cookie)) {

conn.setRequestProperty("Cookie", cookie);

i("httpGet", "cookie>>>>>" + cookie);

}

if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {

is = conn.getInputStream();

String str = readData(is, "UTF-8");

e("httpGet", "str>>>>>" + str);

return str;

}

} catch (Exception e) {

throw new Exception(e.getMessage());

} finally {

try {

if (is != null)

is.close();

if (conn != null)

conn.disconnect();

} catch (Exception e) {

} finally {

is = null;

conn = null;

}

}

return null;

}



protected static String httpsPost(String url, String queryString, String cookie)

throws Exception {



if (isNullEmptyBlank(url)) {

return "url不能为空";

}



URL urlPath = null;

HttpsURLConnection conn = null;

OutputStream os = null;

InputStream is = null;



try {

SSLContext sslContext = SSLContext.getInstance("TLS");

sslContext.init(null,

new TrustManager[] { new MyX509TrustManager() },

new java.security.SecureRandom());

HttpsURLConnection.setDefaultSSLSocketFactory(sslContext

.getSocketFactory());

HttpsURLConnection

.setDefaultHostnameVerifier(new MyHostnameVerifier());

urlPath = new URL(url);

conn = (HttpsURLConnection) urlPath.openConnection();

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);

conn.setInstanceFollowRedirects(true);

// 设置连接主机超时(单位:毫秒)

conn.setConnectTimeout(CONNECTION_TIMEOUT);

// 设置从主机读取数据超时(单位:毫秒)

conn.setReadTimeout(CONNECTION_TIMEOUT);

conn.setRequestProperty("Accept", "/");

conn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

conn.setRequestMethod("POST");

if (!isNullEmptyBlank(cookie)) {

conn.setRequestProperty("Cookie", cookie);

i("httpsPost", "cookie>>>>>" + cookie);

}

if (!isNullEmptyBlank(queryString)) {

os = conn.getOutputStream();

os.write(queryString.getBytes("UTF-8"));

os.flush();

i("httpsPost", url + queryString);

}

if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {

is = conn.getInputStream();

String str = readData(is, "UTF-8");

e("httpsPost", "str>>>>>" + str);

return str;

}

} catch (Exception e) {

throw new Exception(e.getMessage());

} finally {

try {

if (os != null)

os.close();

if (is != null)

is.close();

if (conn != null)

conn.disconnect();

} catch (Exception e) {

e.printStackTrace();

} finally {

os = null;

is = null;

conn = null;

}

}

return null;

}



protected static String httpPost(String url, String queryString)

throws Exception {

if (isNullEmptyBlank(url)) {

return "url不能为空";

}



URL urlPath = null;

HttpURLConnection conn = null;

OutputStream os = null;

InputStream is = null;



try {

urlPath = new URL(url);

conn = (HttpURLConnection) urlPath.openConnection();

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);

conn.setInstanceFollowRedirects(true);

// 设置连接主机超时(单位:毫秒)

conn.setConnectTimeout(CONNECTION_TIMEOUT);

// 设置从主机读取数据超时(单位:毫秒)

conn.setReadTimeout(CONNECTION_TIMEOUT);

conn.setRequestProperty("Accept", "/");

conn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

conn.setRequestMethod("POST");

if (!isNullEmptyBlank(queryString)) {

os = conn.getOutputStream();

os.write(queryString.getBytes("UTF-8"));

os.flush();

i("httpPost", url + "?" + queryString);

}

if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {

is = conn.getInputStream();

String str = readData(is, "UTF-8");

e("httpPost", "str>>>>>" + str);

}

} catch (Exception e) {

throw new Exception(e.getMessage());

} finally {

try {

if (os != null)

os.close();

if (is != null)

is.close();

if (conn != null)

conn.disconnect();

} catch (Exception e) {

e.printStackTrace();

} finally {

os = null;

is = null;

conn = null;

}

}

return null;

}



private static String readData(InputStream inSream, String charsetName)

throws Exception {

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[4096];

int len = -1;

while ((len = inSream.read(buffer)) != -1) {

outStream.write(buffer, 0, len);

}

byte[] data = outStream.toByteArray();

outStream.close();

inSream.close();

return new String(data, charsetName);

}



private static class MyHostnameVerifier implements HostnameVerifier {

public boolean verify(String hostname, SSLSession session) {

return true;

}

}



private static class MyX509TrustManager implements X509TrustManager {

public X509Certificate[] getAcceptedIssuers() {

return null;

}



public void checkServerTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

}



public void checkClientTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

}

};



private static void i(String tag, String msg) {

if (tag == null || msg == null) {

return;

}

Log.i(tag, msg);

}



private static void e(String tag, String msg) {

if (tag == null || msg == null) {

return;

}

Log.e(tag, msg);

}



/**

  • 判断字符串是否为空(包含null与""," ")

  • @param str
  • @return

    */

    private static boolean isNullEmptyBlank(String str) {

    if (str == null || "".equals(str) || "".equals(str.trim()))

    return true;

    return false;

    }

    }

标签: php php教程

热门推荐