[英]How to pass request model to get API on Angular 7/8?
我有 Get Api 来获取用户数据,我可以在其中传递请求模型以根据请求模型搜索用户列表。 它在 Postman 上运行良好,但是当我尝试在 Angular 7 和 8 中实现相同的功能时,它不起作用。
请指导我如何实施。
我的实现如下
邮差
URL = http://localhost:64888/api/Users/SearchUsers
Header : Content-Type = application/json
Body =
{
"firstname" : "value",
"lastname" : "value",
"emailid" : "value",
"usertype" : "value",
}
邮递员结果:它工作正常并提供用户列表
请求模型
export class UserRequest {
firstname : string;
lastname : string;
emailid : string;
usertype : string;
}
用户服务
export class UserService {
constructor(private http: HttpClient) { }
SearchUsers(requestParam : UserRequest) : Observable<any>{
const httpOptions = {
headers: {
'Content-Type': 'application/json',
'Authorization' : 'Bearer Tokenvalue'
},
params: requestParam
};
return this.http.get("http://localhost:64888/api/Users/SearchUsers", httpOptions);
}
}
用户组件
export class UserComponent implements OnInit {
constructor(private userService : UserService) { }
ngOnInit() {
var requestParam : UserRequest;
requestParam.firstname = "r";
requestParam.lastname = "";
requestParam.emailid = "";
requestParam.usertype = "user";
this.userService.SearchUsers(requestParam)
.subscribe(
data => {
console.log(data);
}
)
}
}
如果你想在正文中发送参数,然后使用 POST 请求,主要是在 GET 请求中,参数是在 url 中发送的,请参阅此链接, 请参阅此
像这样转换您的请求
SearchUsers(requestParam : UserRequest) : Observable<any>{
const httpOptions = {
headers: {
'Content-Type': 'application/json',
'Authorization' : 'Bearer Tokenvalue'
}
};
return this.http.get("http://localhost:64888/api/Users/SearchUsers?firstname=value&lastname=value&emailid=value&userid=value", httpOptions);
}
尝试以下代码并替换为您在 UserService 中的代码
export class UserService {
constructor(private http: HttpClient) { }
SearchUsers(requestParam : UserRequest) : Observable<any>{
const httpOptions = {
headers: {
'Content-Type': 'application/json',
'Authorization' : 'Bearer Tokenvalue'
},
};
return this.http.get("http://localhost:64888/api/Users/SearchUsers+"?firstname="+requestParam.firstname+"&lastname="+requestParam+"&emailid="+requestParam.emailid +"&usertype="+requestParam.usertype ", httpOptions);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.