java - 如何将参数从 cordova HTTP 传递到 Spring Controller

标签 java angular spring ionic4 ionic-native

在我的 ionic 5.0.0 应用程序中,我使用 cordova 的 native HTTP 进行其余调用。下面是我的注销功能的代码片段。

但是当我执行这个函数时,我收到以下错误。

"advanced-http: \"data\" argument supports only following data types: String"

  logout() {
    this.setData("url", "/web/oauth/revoke-token");
    let apiUrl = this.getBaseUrl() + this.getData("url");
    const headers = {
      'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
      'Authorization': 'Basic Y2hyR3liUnBxQUR3X2VDemw5dzc0cHU4dXNnYTpKdmZ1azgyYnBUQlVnNDJ6NU1hZFhXOWJPeElh'
    };
    const params = {
      'companyId': this.getData("COMPANY_ID"),
      'token': this.getData("ACCESS_TOKEN"),
      'client_id': this.getData("CLIENT_ID"),
      'token_type_hint': 'access_token'
    };
    this.nativeHttp.post(apiUrl, params, headers).then(response => {
     console.log("success response: "+response);
    })
    .catch(error => {
      console.log("error response: "+error);
    });
    console.log("finished");
  }

这是我接收参数的 Spring Controller 。

	@RequestMapping(value = "/oauth/revoke-token", method = RequestMethod.POST)
	@ResponseBody
	public ResponseEntity<Object> logout(HttpServletRequest request) {
		String clientId = request.getParameter(OAuth2Constants.CLIENT_ID);
		String token = request.getParameter(OAuth2Constants.TOKEN);
		String tokenTypeHint = request.getParameter(OAuth2Constants.TOKEN_TYPE_HINT);
		String companyId = request.getParameter(WebConstants.COMPANY_ID_PARAMETER);
    }

但不幸的是,所有参数在 Controller 中接收为空。

有人可以帮助我吗?

最佳答案

终于找到了解决这个问题的方法。在执行 post 调用之前,只需按如下方式设置 http 请求的数据序列化器即可。

this.nativeHttp.setDataSerializer( "urlencoded" );

关于java - 如何将参数从 cordova HTTP 传递到 Spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58184600/

相关文章:

angular - 从 Angular 6 升级到 Angular 8 时出错

android - Cordova位置权限每次都会触发onResume

javascript - 如何使用绘图管理器从谷歌地图中删除绘制的圆或多边形 - ng2-map

java - Restful Spring 服务中的 session 范围

java - 如何使用PrintWriter和flush()在文本文件上打印内容?

java - 没有结果时 executeQuery(String sql) 返回什么?

java - 不要请求 Window.FEATURE_ACTION_BAR 问题

java - 如何掌握android开发?

java - DELETE 和 PUT 方法总是调用 POST

Spring 异步任务 : update jsf view component