我遇到问题,当我需要将用户插入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); })
})
答案 0 :(得分:0)
正如Pierre Mallet在评论中所述,您使用的Content-Type
是application/x-www-form-urlencoded
。这可以用于登录,例如当您请求openid-connect/token
时。但是,当前Content-Type
似乎不受admin API的支持,但是您可以使用Content-Type
中的application/json
发出请求,假定您输入了201提供有效的用户凭据。