DuerOS Java开发技能(三)服务部署和测试

服务部署:

测试的时候可以使用http来测试(包含dueros控台),最后部署需要https访问

我用的是springboot 

实现https访问,证书如下:

 

测试时,有时候http可以访问 https可以通过postman 访问,但是控台访问失败,大部分是因为证书的问题

阿里云免费申请证书地址:

https://common-buy.aliyun.com/?spm=5176.7968328.1120760.1.24931232qJTs9P&commodityCode=cas#/buy

哦,对了,最后加一句dueros技能的超时时间 是5S左右,我有几个httpclient 请求导致 技能请求超时。有问题求指教。

 

转载于:https://www.cnblogs.com/mfser/p/9705227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DuerOS方授权使用 OAuth2.0 协议,下面是 Java 代码详细步骤: 1. 首先,在百度开发者平台注册应用程序,并获得 Client ID 和 Client Secret。 2. 根据 OAuth2.0 协议,在用户点击授权按钮后,将用户重定向到百度授权页面。授权页面的 URL 应该由以下参数组成: ``` https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state> ``` 其中,`response_type` 固定为 `code`,`client_id` 为应用程序的 Client ID,`redirect_uri` 为应用程序的回调 URL,`scope` 为应用程序要访问的权限列表,`state` 为用户自定义参数。 3. 用户在授权页面输入百度账号密码并授权,百度会将用户重定向回应用程序的回调 URL 并带上授权码。 4. 应用程序获取授权码后,使用以下代码向百度请求 Access Token: ```java String code = // 获取到的授权码 String clientId = // 应用程序的 Client ID String clientSecret = // 应用程序的 Client Secret String redirectUri = // 应用程序的回调 URL String url = "https://openapi.baidu.com/oauth/2.0/token"; HttpPost httpPost = new HttpPost(url); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("grant_type", "authorization_code")); params.add(new BasicNameValuePair("code", code)); params.add(new BasicNameValuePair("client_id", clientId)); params.add(new BasicNameValuePair("client_secret", clientSecret)); params.add(new BasicNameValuePair("redirect_uri", redirectUri)); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); String responseBody = EntityUtils.toString(response.getEntity()); JSONObject jsonObject = new JSONObject(responseBody); String accessToken = jsonObject.getString("access_token"); Long expiresIn = jsonObject.getLong("expires_in"); ``` 5. 百度会返回 Access Token 和过期时间,应用程序需要将 Access Token 存储在安全的地方,在访问百度 API 时使用。过期时间用来判断 Access Token 是否过期,如果过期则需要重新获取。 6. 应用程序使用 Access Token 访问百度 API,例如: ```java String url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"; HttpPost httpPost = new HttpPost(url); String accessToken = // 获取到的 Access Token httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); httpPost.addHeader("Authorization", "Bearer " + accessToken); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("image", "base64_图片数据")); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); String responseBody = EntityUtils.toString(response.getEntity()); JSONObject jsonObject = new JSONObject(responseBody); JSONArray results = jsonObject.getJSONArray("result"); ``` 以上就是 DuerOS方授权(OAuth2.0)过程的 Java 代码详细步骤。需要注意的是,这只是一个简单的示例,实际应用程序中需要考虑更多的安全性和错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值