废话不多说,直接上代码,具体详情见附件,代码中AK替换成你自己的AK
package com.bugyun.constant; /** * 调用百度请求的参数常量 * @author Administrator * */ public class RequestArgsConstant { /** * 百度地图ak */ public static enum AK{ /** * 百度地图服务器端AK */ SERVER("ak","1VXoHnmOFbX9h5yNfpdL9hnf6GPaFM11"), /** * 百度地图浏览器端AK */ JS("ak","CYSQLGty1YSUGDmI2vkmdtwTQ14L0311"); private String key; private String value; private AK( String key , String value){ this.key = key ; this.value = value ; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } }
package com.bugyun.constant; /** * 调用百度请求的URL常量 * POST:创建、更新、删除 * GET:查询 * @author Administrator * */ public class RequestURLConstant { /** * 位置数据表(geotable)的创建 */ public final static String GEOTABLE_CREATE= "http://api.map.baidu.com/geodata/v3/geotable/create"; /** * 位置数据表(geotable)的查询 */ public final static String GEOTABLE_QUERY= "http://api.map.baidu.com/geodata/v3/geotable/list"; /** * 位置数据表(geotable)的更新 */ public final static String GEOTABLE_UPDATE= "http://api.map.baidu.com/geodata/v3/geotable/update"; /** * 位置数据表(geotable)的删除 */ public final static String GEOTABLE_DELETE= "http://api.map.baidu.com/geodata/v3/geotable/delete"; }
package com.bugyun.main; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import org.apache.http.Consts; import org.apache.http.message.BasicNameValuePair; import com.bugyun.constant.RequestArgsConstant; import com.bugyun.constant.RequestURLConstant; import com.bugyun.util.HttpClientUtil; public class ApplicationEntry { public static void main(String[] args) { // 位置数据表(geotable)的创建 Map<String, String> map = new HashMap<>(); map.put(RequestArgsConstant.AK.SERVER.getKey(), RequestArgsConstant.AK.SERVER.getValue()); map.put("name","geotableCreateOne"); map.put("geotype", "1"); map.put("is_published", "1"); String createStr = HttpClientUtil.doPost(RequestURLConstant.GEOTABLE_CREATE, Consts.UTF_8.toString(), map); System.out.println(createStr); // 位置数据表(geotable)的查询 // BasicNameValuePair bnvpOne = new BasicNameValuePair(RequestArgsConstant.AK.SERVER.getKey(), RequestArgsConstant.AK.SERVER.getValue()); // BasicNameValuePair bnvpTwo = new BasicNameValuePair("name", "geotableCreateOne"); // String getStr = HttpClientUtil.doGet(RequestURLConstant.GEOTABLE_QUERY, "UTF-8", bnvpOne, bnvpTwo); // System.out.println(getStr); // 位置数据表(geotable)的更新 // Map<String, String> updateMap = new HashMap<>(); // updateMap.put(RequestArgsConstant.AK.SERVER.getKey(), RequestArgsConstant.AK.SERVER.getValue()); // updateMap.put("name", "geotableCreateOneUpdate"); // //ID值:上面新建的ID // updateMap.put("id", "177625"); // String updateStr = HttpClientUtil.doPost(RequestURLConstant.GEOTABLE_UPDATE, Consts.UTF_8.toString(), updateMap); // System.out.println(updateStr); // 位置数据表(geotable)的删除 // Map<String, String> deleteMap = new HashMap<>(); // deleteMap.put(RequestArgsConstant.AK.SERVER.getKey(), RequestArgsConstant.AK.SERVER.getValue()); // //ID值:上面新建的ID // deleteMap.put("id", "177629"); // String deleteStr = HttpClientUtil.doPost(RequestURLConstant.GEOTABLE_DELETE, Consts.UTF_8.toString(), deleteMap); // System.out.println(deleteStr); } }
package com.bugyun.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.ParseException; 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.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * 调用第三接口请求 * @author Administrator * */ public class HttpClientUtil { /** * Get请求调用 * @param url 不含参数的URL * @param charset 字符编码(Consts类下有常量) * @param basicNameValuePair 创建basicNameValuePair(key,value)对象,参数key:url后的key, value:url等号后的值 * @return 调用URL返回结果。返回结果中字段status的值分别代表的含义为:<br>0: 成功 <br>1: 服务器内部错误 <br>2: 参数错误 <br>3: http method错误 <br>21: 此操作为批量操作 <br>22: 同步到检索失败 <br>31: 服务端加锁失败 <br>32: 服务端释放锁失败 <br>1001: 表的name重复 <br>1002: 表的数量达到了最大值 <br>1003: 表中存在poi数据,不允许删除 <br>2001: 列的key重复 <br>2002: 列的key是保留字段 <br>2003: 列的数量达到了最大值 <br>2004: 唯一索引只能创建一个 <br>2005: 更新为唯一索引失败,原poi数据中有重复 <br>2011: 排序筛选字段只能用于整数或小数类型的列 <br>2012: 排序筛选的列已经达到了最大值 <br>2021: 检索字段只能用于字符串类型的列且最大长度不能超过512个字节 <br>2022: 检索的列已经达到了最大值 <br>2031: 索引的列已经达到了最大值 <br>2041: 指定的列不存在 <br>2042: 修改max_length必须比原值大 <br>3001: 更新坐标必须包含经纬度和类型 <br>3002: 唯一索引字段存在重复 <br>3031: 上传的文件太大 <br> * */ public static String doGet(String url, String charset,BasicNameValuePair... basicNameValuePair) { CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; String result = null; // 封装请求参数 List<NameValuePair> params = new ArrayList<>(); for (int i = 0; i < basicNameValuePair.length; i++) { params.add(basicNameValuePair[i]); } String str = ""; try { // 转换为键值对 str = EntityUtils.toString(new UrlEncodedFormEntity(params, charset)); // 创建Get请求 HttpGet httpGet = new HttpGet(url + "?" + str); // 执行Get请求, response = httpClient.execute(httpGet); // 看请求是否成功,这儿打印的是http状态码 // System.out.println(response.getStatusLine().getStatusCode()); // 得到响应体 HttpEntity entity = response.getEntity(); if (entity != null) { result = EntityUtils.toString(entity, charset); } } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 消耗实体内容 if (response != null) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } // 关闭相应 丢弃http连接 if (httpClient != null) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result ; } /** * Post请求调用 * @param url 不含参数的URL * @param charset 字符编码(Consts类下有常量) * @param map 参数key:url后的key, value:url等号后的值 * @return */ @SuppressWarnings("unchecked") public static String doPost(String url, String charset , Map<String, String> map) { CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null ; HttpPost httpPost = null; String result = null; try { httpPost = new HttpPost(url); // 设置参数 List<NameValuePair> list = new ArrayList<NameValuePair>(); Iterator<?> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, String> elem = (Entry<String, String>) iterator.next(); String key = elem.getKey() ; String value = elem.getValue() ; BasicNameValuePair bnvp = new BasicNameValuePair(key, value); list.add(bnvp); } if (list.size() > 0) { // 转换为键值对 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset); httpPost.setEntity(entity); } // 执行Post请求, response = httpClient.execute(httpPost); if (response != null) { // 看请求是否成功,这儿打印的是http状态码 // System.out.println(response.getStatusLine().getStatusCode()); // 得到响应体 HttpEntity resEntity = response.getEntity(); if (resEntity != null) { result = EntityUtils.toString(resEntity, charset); } } } catch (Exception ex) { ex.printStackTrace(); }finally { // 消耗实体内容 if (response != null) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } // 关闭相应 丢弃http连接 if (httpClient != null) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } }
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bugyun</groupId> <artifactId>baiduMap</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> </dependencies> </project>
相关推荐
本demo有两个例子test是作为服务端开启的,httpclient是客户端调用的,模拟服务端的test在启动后是没有界面的,要加上id才能看到json数据,httpclient的HttpClient33.java是测试类,最后的结果是接受到一个对象。...
HttpClient是Apache基金会开发的一个HTTP客户端库,用于在Java应用程序中执行HTTP请求。它提供了一种高效、灵活且可扩展的方式来发起HTTP请求,并处理响应。在这个工具类中,我们看到包括了Post、Get、Put和Delete四...
本项目“java百度地图瓦片批量下载demo”是一个示例,它展示了如何利用Java来实现百度地图的瓦片图片的批量下载。 首先,我们要理解什么是地图瓦片。地图瓦片是地图的一种分块表示方式,将整个地球表面按照一定的...
总的来说,通过学习和实践这个"java调用人脸识别接口demo",你可以掌握如何在Java项目中集成和使用人脸识别技术,为你的应用增加强大的视觉功能。无论是安全认证、用户界面优化还是数据分析,这些知识都将对你的编程...
通过学习和实践这个JavaDEMO,开发者不仅能掌握如何在Java应用中调用百度LBS云存储API,还能提升处理网络请求、JSON数据以及错误处理等通用技能。这将有助于开发者构建更智能、更高效的地理位置相关应用。
【机票API调用Java-DEMO】是一个针对Java开发者的学习示例,主要目的是演示如何在Java应用程序中调用机票查询的API服务。API(Application Programming Interface)是软件之间交互的一种方式,它允许开发者通过发送...
综上所述,"http和WebService 调用接口Java代码demo"这个主题涵盖了Java通过HTTP进行接口调用的基本方法,以及Web Service的使用,特别是结合Spring Boot的场景。在实际项目中,理解并熟练运用这些技术能够帮助我们...
HttpClient是Java中用于发送HTTP请求的一个重要库,它允许开发者...HttpClient_Demo项目应包含一个或多个Java源文件,演示了上述知识点的实际应用,通过阅读和运行这些代码,可以更深入地理解HttpClient的使用方法。
bleHttpClient httpClient; private static PoolingHttpClientConnectionManager cm; 静态初始化HttpClient和连接池管理器: ```java static { // 创建连接池管理器 cm = new PoolingHttpClientConnectionManager...
在本文中,我们将深入探讨如何使用Spring Boot框架结合Forest、Okhttp和HttpClient这三种不同的库来调用第三方API,特别是以高德地图API为例。首先,让我们了解Spring Boot的基础知识,然后逐一分析这三个库以及它们...
在这个"SSM调用百度人脸识别demo"项目中,我们将看到如何在SSM环境中集成并调用百度的人脸识别API,以实现基于图像的人脸检测和识别功能。 首先,我们需要了解百度人脸识别服务。百度提供了开放的AI平台,其中包含...
6. **API调用**:在Java中,可以使用HttpURLConnection或者第三方库如Apache HttpClient或OkHttp来发起HTTP请求调用百度的RESTful API。调用过程中通常需要设置API密钥、访问令牌等安全参数。 7. **JSON数据交换**...
本资源“HTTP接口间调用Demo”提供了一个实际的Java代码示例和详细的MD格式笔记,旨在帮助开发者更好地理解和应用HTTP接口调用。 首先,让我们了解HTTP(超文本传输协议)的基本概念。HTTP是一种应用层协议,用于在...
通过调用`execute`方法,HttpClient会发送请求并返回响应。状态码可以通过`getStatusLine().getStatusCode()`获取,响应头可以遍历`getAllHeaders()`,而响应体通常可以通过`HttpEntity`的`getContent()`方法读取。 ...
1. **Java网络编程**:海康监控设备通常是通过网络接口进行通信的,因此Java的Socket编程是基础。开发者可能需要用到`java.net.Socket`和`java.net.ServerSocket`类来建立客户端和服务器之间的连接,发送和接收数据...
总的来说,这个SSM调用百度人脸识别的demo为开发者提供了一个实践案例,展示了如何在Java Web项目中整合第三方API,实现复杂功能。无论是对SSM框架的掌握,还是对百度人脸识别API的使用,都能从中获得宝贵的经验。...
对于C#开发者,虽然没有直接提到C#的安装包,但交通银行的API应该是跨平台的,所以C#开发者同样可以参考Java版本的API文档来实现接口调用。他们需要掌握.NET Framework或者.NET Core的相关知识,以及如何使用...
解压文件`youdao_demo`后,你可能发现包含示例代码和配置文件,这些资源将帮助你理解如何进行实际的调用过程。 要使用有道翻译API,你需要遵循以下步骤: 1. **注册和申请API**:访问有道开放平台(如...