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

时间:2018-02-26 07:58:04

标签: angular httpclient keycloak

我遇到问题,当我需要将用户插入Keycloak时出现此错误:

消息 : " http://localhost:8080/auth/admin/realms/demo/clients的Http失败响应:415不支持的媒体类型" 名称 : " HttpErrorResponse" 好 : 假 状态 : 415 状态文本 : "不支持的媒体类型" 网址 : " 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); })
  })

1 个答案:

答案 0 :(得分:0)

正如Pierre Mallet在评论中所述,您使用的Content-Typeapplication/x-www-form-urlencoded。这可以用于登录,例如当您请求openid-connect/token时。但是,当前Content-Type似乎不受admin API的支持,但是您可以使用Content-Type中的application/json发出请求,假定您输入了201提供有效的用户凭据。