Java 跨域访问主要用到
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;
import com.alibaba.fastjson.*;
常用有post ,get请求,将请求返回的值转化为map,用阿里巴巴的fastjson提取内容
package com.company;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;
import com.alibaba.fastjson.*;
public class HttpURLConnectionUtil {
/**
*
* @param URL 请求路由
* @param data 发送参数
* @return json字符串
*/
public String postRequest(String URL,String data){
OutputStreamWriter out = null;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
HttpURLConnection conn = null;
try{
URL url = new URL(URL);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
//发送POST请求必须设置为true
conn.setDoOutput(true);
conn.setDoInput(true);
//设置连接超时时间和读取超时时间
conn.setConnectTimeout(30000);
conn.setReadTimeout(10000);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Accept", "application/json");
//获取输出流
out = new OutputStreamWriter(conn.getOutputStream());
String jsonStr = data;
out.write(jsonStr);
out.flush();
out.close();
//取得输入流,并使用Reader读取
if (200 == conn.getResponseCode()){
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null){
result.append(line);
System.out.println(line);
}
}else{
System.out.println("ResponseCode is an error code:" + conn.getResponseCode());
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(out != null){
out.close();
}
if(in != null){
in.close();
}
}catch (IOException ioe){
ioe.printStackTrace();
}
}
return result.toString();
}
/**
*
* @param URL 请求路由
* @return
*/
public String GetRequest(String URL){
HttpURLConnection conn = null;
InputStream is = null;
BufferedReader br = null;
StringBuilder result = new StringBuilder();
try{
//创建远程url连接对象
URL url = new URL(URL);
//通过远程url连接对象打开一个连接,强转成HTTPURLConnection类
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
//设置连接超时时间和读取超时时间
conn.setConnectTimeout(15000);
conn.setReadTimeout(60000);
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("authorization","Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjA4ZGZmNzNkLWU2YmItNDg5Zi05Y2U3LTQ0ODRmYzhjMjZmYyJ9.xA85nSNi211TaWKkcsfdnqkEXSlPFNs3Rn4UtGvZVq2YagQ6lsD-AGZ-8XXkGNjte7SKa7UOsDsLJz6GXvlkRw");
//发送请求
conn.connect();
//通过conn取得输入流,并使用Reader读取
if (200 == conn.getResponseCode()){
is = conn.getInputStream();
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line;
while ((line = br.readLine()) != null){
result.append(line);
//System.out.println(line);
}
// System.out.println(result);
}else{
System.out.println("ResponseCode is an error code:" + conn.getResponseCode());
}
}catch (MalformedURLException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if(br != null){
br.close();
}
if(is != null){
is.close();
}
}catch (IOException ioe){
ioe.printStackTrace();
}
conn.disconnect();
}
return result.toString();
}
public static void main(String[] args) {
HttpURLConnectionUtil http = new HttpURLConnectionUtil();
String data = "{\"username\":\"admin\", \"password\":\"admin123\"}";
System.out.println("Testing 1 - Do Http GET request");
String str= http.GetRequest("http://localhost:8080/getInfo");
// System.out.println(str);
//第二种方式
Map mapTypes = JSON.parseObject(str);
// Map mapTypes2 = JSON.parseObject(mapTypes.get("user").toString());
// System.out.println(mapTypes2.get("admin"));
for(Object oj : mapTypes.keySet()) {
System.out.println(mapTypes.get(oj));
}
System.out.println(http.postRequest("http://localhost:8080/login",data));
}
}