重点:包下面有两个类是用来调用URL请求的。
第一个 URLconnection 只能使用常用的post方式请求
第二个 httpUrlconnection 可以主动设置四种请求方式
其中,这两个类都是可以设置header参数传参的(setRequestProperty(key,value))
代码如下:
public static String httpPost (String url, byte[] parameter, String base64) throws Exception{
java.util.Date data = new java.util.Date();
String timestamp = String.valueOf(data.getTime()/1000);//时间戳(精确到秒)
String signature = "*******";
//定义stringbuffer 方便后面读取网页返回字节流信息时的字符串拼接
StringBuffer buffer = new StringBuffer();
//创建url_connection
java.net.URLConnection http_url_connection = null;
try {
http_url_connection = (new java.net.URL(url)).openConnection();
http_url_connection.setDoInput(true);
http_url_connection.setDoOutput(true);
http_url_connection.setRequestProperty("Content-Length", String.valueOf(parameter.length));
http_url_connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
http_url_connection.setRequestProperty("accept", "application/json");
http_url_connection.setRequestProperty("authkey","************");//header设置authkey的参数
http_url_connection.setRequestProperty("signature",signature);//header设置signature的参数
http_url_connection.setRequestProperty("timestamp",timestamp);//header设置timestamp的参数
http_url_connection.setUseCaches(false);
if (null!=base64) {
//如果传入的参数不为空,则通过base64将传入参数解码
http_url_connection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8"));
}
// write request.
java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(http_url_connection.getOutputStream());
output_stream.write(parameter);
output_stream.flush();
output_stream.close();
output_stream = null;
java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(http_url_connection.getInputStream(), "utf-8");
java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader);
buffer = new StringBuffer();
String line;
while ((line = buffered_reader.readLine()) != null) {
buffer.append(line);
}
line=null;
input_stream_reader.close();
input_stream_reader = null;
buffered_reader.close();
buffered_reader = null;
// http_url_connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}
public static String httpPost (String url, byte[] parameter, String base64) throws Exception{
java.util.Date data = new java.util.Date();
String timestamp = String.valueOf(data.getTime()/1000);//时间戳(精确到秒)
String signature = "*********";
//定义stringbuffer 方便后面读取网页返回字节流信息时的字符串拼接
StringBuffer buffer = new StringBuffer();
//创建url_connection
java.net.URLConnection http_url_connection = null;
try {
http_url_connection = (new java.net.URL(url)).openConnection();
java.net.HttpURLConnection HttpURLConnection = (java.net.HttpURLConnection)http_url_connection;//将urlconnection类强转为httpurlconnection类
HttpURLConnection.setDoInput(true);
HttpURLConnection.setDoOutput(true);
HttpURLConnection.setRequestMethod("DELETE");//设置请求方式。可以是delete put post get
HttpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameter.length));//设置内容的长度
HttpURLConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");//设置编码格式
HttpURLConnection.setRequestProperty("accept", "application/json");//设置接收返回参数格式
HttpURLConnection.setRequestProperty("authkey","************");
HttpURLConnection.setRequestProperty("signature",signature);
HttpURLConnection.setRequestProperty("timestamp",timestamp);
HttpURLConnection.setUseCaches(false);
if (null!=base64) {
//如果传入的参数不为空,则通过base64将传入参数解码
HttpURLConnection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8"));
}
// write request.
java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(HttpURLConnection.getOutputStream());
output_stream.write(parameter);
output_stream.flush();
output_stream.close();
output_stream = null;
java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(HttpURLConnection.getInputStream(), "utf-8");
java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader);
buffer = new StringBuffer();
String line;
while ((line = buffered_reader.readLine()) != null) {
buffer.append(line);
}
line=null;
input_stream_reader.close();
input_stream_reader = null;
buffered_reader.close();
buffered_reader = null;
// http_url_connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}