繁体   English   中英

如何传递请求模型以获取 Angular 7/8 上的 API?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM