java http请求访问接口

2018-12-18  本文已影响0人  蛋皮皮652

package com.yjys.malls.modules.works.utils;

import net.sf.json.JSONObject;

import java.io.*;

import java.net.URL;

import java.net.URLConnection;

import java.util.HashMap;

import java.util.Map;

/**

* @Description:

* @Author: wy

* @CreatTime: 2018-11-29 下午 01:45

*/

public class WebService {

public static void main(String[] args) {

Map dept =new HashMap<>();

        dept.put("pageNum","1");

        dept.put("pageSize","3");

        String a=sendPost("http://tea.yanxukj.com/malls/api/getDept",dept);

        System.out.println("@@a  "+a);

    }

/**

    * 向服务器接口发送post请求

    *

    * @param    url:请求的接口地址

    * @param params:请求参数

    * @return    表远程资源的响应结果

    */

    public static StringsendPost(String url, Map params) {

//将Map数据转换为JSON字符串

        String jsonParams=JSONObject.fromObject(params).toString();

        //System.out.println("!@#  "+jsonParams);

//PrintWriter out = null;

        DataOutputStream out=null;

        BufferedReader in =null;

        String result ="";

        try {

URL realUrl =new URL(url);

            //打开和URL之间的连接

            URLConnection connect = realUrl.openConnection();

            // 设置通用的请求属性

            connect.setRequestProperty("accept", "*/*");

            connect.setRequestProperty("connection", "Keep-Alive");

            connect.setRequestProperty("user-agent",

                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

            connect.setRequestProperty("Content-Type","application/json");

            // 发送POST请求必须设置如下两行

            connect.setDoOutput(true);

            connect.setDoInput(true);

            // 获取URLConnection对象对应的输出流

            //out = new PrintWriter(connect.getOutputStream());

            out=new DataOutputStream(connect.getOutputStream());

            // 发送请求参数

            //out.print(jsonParams);

            out.write(jsonParams.getBytes("UTF-8"));//传中文必须

            // flush输出流的缓冲

            out.flush();

            // 定义BufferedReader输入流来读取URL的响应

            in =new BufferedReader(

new InputStreamReader(connect.getInputStream(),"UTF-8"));

            String line;

            while ((line = in.readLine()) !=null) {

result += line;

            }

}catch (Exception e) {

System.out.println("发送 POST 请求出现异常"+e);

            e.printStackTrace();

        }

//使用finally块来关闭输出流和输入流

        finally{

try{

if(out!=null){

out.close();

                }

if(in!=null){

in.close();

                }

}

catch(IOException ex){

ex.printStackTrace();

            }

}

return result;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读