我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色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面试