java後臺post請求呼叫介面
阿新 • • 發佈:2019-01-23
今天專案介面一直調不通,於是我修改了相關的程式碼
在網上找到了一個很好的例子:
public static String httpPost(String urlStr,Map<String,String> params){ URL connect; StringBuffer data = new StringBuffer(); try { connect = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection)connect.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false);//post不能使用快取 connection.setInstanceFollowRedirects(true); connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); OutputStreamWriter paramout = new OutputStreamWriter( connection.getOutputStream(),"UTF-8"); String paramsStr = ""; //拼接Post 請求的引數 for(String param : params.keySet()){ paramsStr += "&" + param + "=" + params.get(param); } if(!paramsStr.isEmpty()){ paramsStr = paramsStr.substring(1); } paramout.write(paramsStr); paramout.flush(); BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream(), "UTF-8")); String line; while ((line = reader.readLine()) != null) { data.append(line); } paramout.close(); reader.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return data.toString(); } public static void main(String[] args) { JSONObject json1=new JSONObject(); json1.put("DTYPE",'0'); json1.put("KEY", "jsddkj"); json1.put("CODE","FacilityServer.getFacilityList"); JSONObject json2=new JSONObject(); json2.put("table", "navi_jiayouzhan"); json2.put("x1","118.181837"); json2.put("y1","33.557312"); json2.put("x2","119.254133"); json2.put("y2","34.631957"); json1.put("DATA",json2); Map<String, String> map=new HashMap<>(); map.put("DATA", json1.toString()); String url=""; System.out.println(httpPost(url,map)); }
下面的引數僅僅我是本地需要的引數,希望對你有所幫助
希望大家一起學習交流: