Java发送Http请求,java高级面试笔试题


我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。
推荐文章:Java 面试知识点解析Mysql优化技巧(数据库设计、命名规范、索引优化

1、方法一,通过apache的httpclient

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.http.HttpEntity;

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

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

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

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

import org.apache.http.entity.ContentType;

import org.apache.http.entity.StringEntity;

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

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

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

import org.junit.Test;

import com.fasterxml.jackson.databind.ObjectMapper;

public class HttpTest {

    String uri = "http://127.0.0.1:8080/simpleweb";

    /**

     * Get方法

     */

    @Test

    public void test1() {

        try {

            CloseableHttpClient client = null;

            CloseableHttpResponse response = null;

            try {

                HttpGet httpGet = new HttpGet(uri + "/test1?code=001&name=测试");

                client = HttpClients.createDefault();

                response = client.execute(httpGet);

                HttpEntity entity = response.getEntity();

                String result = EntityUtils.toString(entity);

                System.out.println(result);

            } finally {

                if (response != null) {

                    response.close();

                }

                if (client != null) {

                    client.close();

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    /**

     * Post发送form表单数据

     */

    @Test

    public void test2() {

        try {

            CloseableHttpClient client = null;

            CloseableHttpResponse response = null;

            try {

                // 创建一个提交数据的容器

                List<BasicNameValuePair> parames = new ArrayList<>();

                parames.add(new BasicNameValuePair("code", "001"));

                parames.add(new BasicNameValuePair("name", "测试"));

                HttpPost httpPost = new HttpPost(uri + "/test1");

                httpPost.setEntity(new UrlEncodedFormEntity(parames, "UTF-8"));

                client = HttpClients.createDefault();

                response = client.execute(httpPost);

                HttpEntity entity = response.getEntity();

                String result = EntityUtils.toString(entity);

                System.out.println(result);

            } finally {

                if (response != null) {

                    response.close();

                }

                if (client != null) {

                    client.close();

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    /**

     * Post发送json数据

     */

    @Test

    public void test3() {

        try {

            CloseableHttpClient client = null;

            CloseableHttpResponse response = null;

            try {

                ObjectMapper objectMapper = new ObjectMapper();

                Map<String, Object> data = new HashMap<String, Object>();

                data.put("code", "001");

                data.put("name", "测试");

                HttpPost httpPost = new HttpPost(uri + "/test2");

                httpPost.setHeader(HTTP.CONTENT_TYPE, "application/json");

                httpPost.setEntity(new StringEntity(objectMapper.writeValueAsString(data),

                        ContentType.create("text/json", "UTF-8")));

                client = HttpClients.createDefault();

                response = client.execute(httpPost);

                HttpEntity entity = response.getEntity();

                String result = EntityUtils.toString(entity);

                System.out.println(result);

            } finally {

                if (response != null) {

                    response.close();

                }

                if (client != null) {

                    client.close();

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

2、方法二,通过JDK自带的HttpURLConnection

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

import org.junit.Test;

import com.fasterxml.jackson.databind.ObjectMapper;

public class HttpApi {

    String uri = "http://127.0.0.1:7080/simpleweb";

    /**

     * Get方法

     */

    @Test

    public void test1() {

        try {

            URL url = new URL(uri + "/test1?code=001&name=测试");

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setDoOutput(true); // 设置该连接是可以输出的

            connection.setRequestMethod("GET"); // 设置请求方式

            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

            String line = null;

            StringBuilder result = new StringBuilder();

            while ((line = br.readLine()) != null) { // 读取数据

                result.append(line + "
");

            }

            connection.disconnect();


            System.out.println(result.toString());

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    /**

     * Post方法发送form表单

     */

    @Test

    public void test2() {

        try {

            URL url = new URL(uri + "/test1");

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setDoInput(true); // 设置可输入

            connection.setDoOutput(true); // 设置该连接是可以输出的

            connection.setRequestMethod("POST"); // 设置请求方式

            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

            PrintWriter pw = new PrintWriter(new BufferedOutputStream(connection.getOutputStream()));

            pw.write("code=001&name=测试");

            pw.flush();

            pw.close();

            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

            String line = null;

            StringBuilder result = new StringBuilder();

            while ((line = br.readLine()) != null) { // 读取数据

                result.append(line + "
");

            }

            connection.disconnect();


            System.out.println(result.toString());

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    /**

     * Post方法发送json数据

     */

    @Test

    public void test3() {

        try {

            URL url = new URL(uri + "/test2");

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setDoInput(true); // 设置可输入

            connection.setDoOutput(true); // 设置该连接是可以输出的

            connection.setRequestMethod("POST"); // 设置请求方式

            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");

            ObjectMapper objectMapper = new ObjectMapper();

            Map<String, Object> data = new HashMap<String, Object>();

            data.put("code", "001");

            data.put("name", "测试");

            PrintWriter pw = new PrintWriter(new BufferedOutputStream(connection.getOutputStream()));

            pw.write(objectMapper.writeValueAsString(data));

            pw.flush();

            pw.close();

            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));

            String line = null;

            StringBuilder result = new StringBuilder();

            while ((line = br.readLine()) != null) { // 读取数据

                result.append(line + "
");

            }
            connection.disconnect();

            System.out.println(result.toString());

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}


转载:https://www.cnblogs.com/zhi-leaf/p/8508071.html

推荐内容:
Java入门篇(一)——如何编写一个简单的Java程序
100+经典Java面试题及答案解析
你知道Java的四种引用类型吗
Java中简单Http请求
java面试整理
Java VS .NET:Java与.NET的特点对比
Java 延迟队列使用
JAVA导出EXCEL表格
java-jmx使用
Google面试官亲授 升级Java面试

猜你喜欢

转载自blog.csdn.net/bi_zhiyi/article/details/89634093
今日推荐