package com.example.demo;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
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.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
public class HttpClientDemo {
public static final String TAG = "HttpClientDemo";
public String getHttpData(String strUrl){
StringBuilder response = null;
HttpsURLConnection urlConn = null;
BufferedReader reader = null;
try{
URL url = new URL(strUrl);
urlConn=(HttpsURLConnection)url.openConnection();
//设置请求方法
urlConn.setRequestMethod("GET");
//设置连接超时时间(毫秒)
urlConn.setConnectTimeout(5000);
//设置读取超时时间(毫秒)
urlConn.setReadTimeout(5000);
//返回输入流
InputStream inStream = urlConn.getInputStream();
response = new StringBuilder();
InputStreamReader in = new InputStreamReader(urlConn.getInputStream());
reader=new BufferedReader(in);
String readLine=null;
while ((readLine=reader.readLine())!=null) {
response.append(readLine);
}
// 判断响应码是否正常
if (urlConn.getResponseCode() == 200) {
return response.toString().trim();
}
}catch(Exception e){
e.printStackTrace();
Log.e(TAG, "getHttpData: exception" + e.toString());
}finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "getHttpData: reader.close exception" + e.toString());
}
}
if (urlConn != null) { // 关闭连接
urlConn.disconnect();
}
}
return null;
}
public String postHttpData(String strUrl, String message){
StringBuffer response = new StringBuffer();
HttpsURLConnection urlConn = null;
try {
Log.d(TAG, "postHttpData: start upload");
BufferedWriter writer = null;
BufferedReader reader = null;
URL url = new URL(strUrl);
urlConn = (HttpsURLConnection)url.openConnection();
//设置请求方法
urlConn.setRequestMethod("POST");
//设置连接超时时间(毫秒)
urlConn.setConnectTimeout(5000);
//设置读取超时时间(毫秒)
urlConn.setReadTimeout(5000);
urlConn.setDoOutput(true);
writer = new BufferedWriter(
new OutputStreamWriter(urlConn.getOutputStream())); //向服务器传送数据
writer.write(message); //传送的数据
writer.close();
reader = new BufferedReader(
new InputStreamReader(urlConn.getInputStream()));//读取服务器响应信息
String readLine=null;
while ((readLine=reader.readLine())!=null) {
response.append(readLine);
}
reader.close();
if (urlConn.getResponseCode() == 200) {
Log.d(TAG, "postHttpData: start upload success");
return response.toString().trim();
}
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "postHttpData: exception" + e.toString());
} finally{
if (urlConn != null) { // 关闭连接
urlConn.disconnect();
}
}
return null;
}
}
Android http client实例
于 2022-03-10 20:41:30 首次发布