您的位置:首页 > 其它

(模拟post请求)如何访问外部接口

2015-09-23 15:36 417 查看
方法一:

package com.colasoft.wcs.common;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import com.alibaba.fastjson.JSONObject;

/**

 *

*

 */

@SuppressWarnings("deprecation")

public class WebInterface {

    private static HttpClient httpClient = new DefaultHttpClient();

    private static HttpResponse response = null;

    public synchronized static String useWebInterface(String url,Map<String,Object> params) {

        HttpPost Httppost = new HttpPost(url);

        List<NameValuePair> formparams = new ArrayList<NameValuePair>();

        String getContent = "";

        for (Entry<String,Object> each : params.entrySet()) {

            formparams.add(new BasicNameValuePair(each.getKey(), (String) each.getValue()));

        }

        try {

            Httppost.setEntity(new UrlEncodedFormEntity(formparams, "utf-8"));

            response = httpClient.execute(Httppost);

            HttpEntity entity = response.getEntity();

            getContent = EntityUtils.toString(entity);

            EntityUtils.consume(entity);

        } catch (ClientProtocolException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

        return getContent;

    }

    /**

     *

     * @Title: getMsgforWeb

     * @Description: 获取返回code的值,判断是否成功

     * @param @param jsonContent

     * @param @return 设定文件

     * @return String 返回类型

     * @throws

     */

    public static String getMsgforWeb(String jsonContent) {

        JSONObject obj = JSONObject.parseObject(jsonContent);

        if (WebInterfaceParams.codeError.equals(obj.getString("code"))) {

            return obj.getString("msg");

        } else {

            return "success";

        }

    }

}

方法二:

package com.eduask.luck.validate;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

public class Test {

    public static String sendPost(String url, String param) {

        PrintWriter out = null;

        BufferedReader in = null;

        String result = "";

        try {

            URL realUrl = new URL(url);

            // 打开和URL之间的连接

            URLConnection conn = realUrl.openConnection();

            // 设置通用的请求属性

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

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

            conn.setRequestProperty("user-agent",

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

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

            conn.setDoOutput(true);

            conn.setDoInput(true);

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

            out = new PrintWriter(conn.getOutputStream());

            // 发送请求参数

            out.print(param);

            // flush输出流的缓冲

            out.flush();

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

            in = new BufferedReader(

                    new InputStreamReader(conn.getInputStream()));

            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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: