手里有一个项目,有一个功能是需要调用其他外部接口,之前自己也没有高过这个方面的知识,就在网上找了一些资料,这边文章感觉很不错,于是自己动手做了测试,发现很完美通过,但是项目至今还没有用上,效果还有待考验。
这是工具类
- package com.dufy.http;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.Map;
- /**
- * @author dufy
- * @description Http的Post和Get请求方式
- * @creation 2017年1月12日
- * @QQ : 742981086
- */
- public class TestHttpRequest {
- /**
- * http get请求方式
- * @param urlStr
- * @param params
- *
- **/
- public static String get(String urlStr,Map<String,String> params){
- InputStream is = null;
- BufferedReader reader = null;
- String resultStr ="";
- try {
- String paramsStr = "";
- for(String param : params.keySet()){
- paramsStr += "&" + param + "=" + params.get(param);
- }
- if(!paramsStr.isEmpty()){
- paramsStr = paramsStr.substring(1);
- urlStr += "?" + paramsStr;
- }
- URL url = new URL(urlStr);
- HttpURLConnection httpCon = (HttpURLConnection) url
- .openConnection();
- httpCon.setRequestMethod("GET");
- is = httpCon.getInputStream();
- reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
- StringBuilder sb = new StringBuilder();
- String line = null;
- while ((line = reader.readLine()) != null) {
- sb.append(line);
- }
- resultStr = sb.toString();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if(reader!=null)reader.close();
- if(is!=null)is.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return resultStr;
- }
- /**
- * http post请求方式
- * @param urlStr
- * @param params
- *
- **/
- public static String post(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.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 = "";
- 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();
- }
- }
这是我自己东说做的测试方法
亲测有效 可以结合框架来做