【问题标题】:Make GET call to REST service with parameters in Angular 2使用 Angular 2 中的参数对 REST 服务进行 GET 调用
【发布时间】:2016-11-24 05:59:27
【问题描述】:

我正在尝试对 YouTube Web API 进行 GET 调用,但我不知道如何使用 http.get 函数传递参数。我使用了提琴手并确保正在发出请求。我目前收到 400 错误,说我缺少参数“Part”。如何修改我的代码以在我的请求中包含所需的参数?

private _url = 'https://www.googleapis.com/youtube/v3/';
private _key = '';

getPlaylistVideos(playlistId, pageToken){

    var url = this._url + "playlistItems";
    var options =  { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken }

    return this.http.get(url, options);

}

【问题讨论】:

    标签: angularjs typescript angular


    【解决方案1】:

    您需要在请求中包含搜索参数。我认为这对你有用:

    getPlaylistVideos(playlistId, pageToken) {
        let url = `${this._url}playlistItems`,
            options =  { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken }, 
            params = URLSearchParams();
    
        for (let key in options) params.set(key, options[key);
    
        return this.http.get(url, {search: options});
    }
    

    您使用 set 方法创建 URLSearchParams,您可以找到完整的文档 here

    【讨论】:

      【解决方案2】:

      请查看关于 AngularJS 和 YouTube V3 API 的已提出并已解决的问题。 See here 感谢@Sandeep Sukhija

      无论如何,关于缺少的参数part,将其添加到请求中,例如:part: 'snippet'

      示例代码:

      function getPlaylistVideos(playlistId, pageToken) {
          // pass the page token as a parameter to the API
          $.get('https://www.googleapis.com/youtube/v3/playlistItems', { part: 'snippet', maxResults: 50, playlistId: playlistId, key: key, pageToken: pageToken })
      }
      

      零件参数的使用方法

      part 参数是任何 API 请求的必需参数, 检索或返回资源。该参数标识一个或多个 应包含在中的顶级(非嵌套)资源属性 API 响应。例如,视频资源具有以下内容 部分:

      sn -p contentDetails fileDetails player processingDetails 记录详情统计状态建议topicDetails

      【讨论】:

      • 应该是评论。
      • 不,这是对他关于失踪part 的问题的回答。有点太多的信息也不能作为评论发布。
      • 现在它是一个答案,当我评论它只是链接。没问题:)
      • 这在带有 Typescript 的 Angular 2 中不起作用,对吗?我知道这个答案适用于 Angular 1
      猜你喜欢
      • 2015-09-30
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 2013-12-15
      相关资源
      最近更新 更多