Angular / Keycloak:415不支持的媒体类型

问题描述 投票:0回答:1

我有一个问题,当我需要将用户插入Keycloak我有这个错误:

消息:“http://localhost:8080/auth/admin/realms/demo/clients的Http失败响应:415不支持的媒体类型”名称:“HttpErrorResponse”ok:false状态:415 statusText:“不支持的媒体类型”url:“http://localhost:8080/auth/admin/realms/demo/clients

如果你能帮助我,我会给你你的代码:

getToken(tppname) {
const data =  new HttpParams()
.set('username', 'pierrecolart')
.set('password', 'root')
.set('grant_type', 'password')
.set('client_id','admin-cli');
console.log(tppname);
token: '';
tokenValue: '';
this.http
    .post(
        this.ROOT_URL,
        data.toString(), 
        {headers: new HttpHeaders().set('content-type', 'application/x-www-form-urlencoded')}
    )
  //.map(res => res.json())
  .subscribe(data => {                          
    console.log(data);                          
    this.token = data['access_token']; 
    console.log(this.token); 
    this.tokenValue = 'Bearer ' + this.token;

const dataPost =  new HttpParams()
.set('Client ID', 's');
console.log(this.tokenValue);
this.http
    .post(
        'http://localhost:8080/auth/admin/realms/demo/clients',
        dataPost.toString(), 
        {headers: new HttpHeaders().set('content-type', 'application/x-www-form-urlencoded').set('Authorization', this.tokenValue).set('Accept', 'application/json')}
    ).subscribe(data => {                          
    console.log(data); })
  })
angular httpclient keycloak
1个回答
0
投票

正如Pierre Mallet在评论中提到的那样,你使用的Content-Typeapplication/x-www-form-urlencoded。这可以用于登录,例如当你要求openid-connect/token时。但是,此Content-Type目前似乎不受管理员API支持,但您可以使用Content-Type application/json发出请求,假设您提供有效的用户凭据,则应该给出201响应。

© www.soinside.com 2019 - 2024. All rights reserved.