나는 Http를 사용하는 작업 코드를 가지고 있으며 이것을 최신 HttpClient를 사용하여 변환하는 방법을 배우고 싶습니다. App.module.ts에서HTTP 5를 HttpClient로 변환하는 방법 (또는> 4.3)?
- : 나는 다음과 같은 단계를 수행 한
"각도/일반/HTTP @" 에서 가져 오기를 {HttpClientModule};
- 은 아래의 서비스 파일에 수입 배열
- 에 HttpClientModule를 추가 (아래 참조) : 수입 {HttpClient를} "각도/일반/HTTP @"에서 을; 생성자에서 HTTP 대신
- 를 주입 HttpClient를 (HttpClient를 HTTP를 교체합니다.
을 지금, 나는이 정확 얻을 수없는 다음 단계를 (어떻게) return this.http.get(queryUrl)..
를 다시
어떤 아이디어가?
...
코드 작업 HTTP를를 사용하여 :
여기import { Injectable, Inject } from "@angular/core";
import { Http, Response } from "@angular/http";
import { Observable } from "rxjs/Observable";
import { SearchResult } from "../models/search-results.model";
export const YOUTUBE_API_KEY = "AIzaSyCIYsOjnkrIjZhVCFwqNJxe1QswhsliciQ";
export const YOUTUBE_API_URL = "https://www.googleapis.com/youtube/v3/search";
@Injectable()
export class YoutubeSearchService {
constructor(
private http: Http,
@Inject(YOUTUBE_API_KEY) private apiKey: string,
@Inject(YOUTUBE_API_URL) private apiUrl: string,
) {}
search(query: string): Observable<SearchResult[]> {
const params: string = [
`q=${query}`,
`key=${this.apiKey}`,
`part=snippet`,
`type=video`,
`maxResults=10`,
].join("&");
const queryUrl = `${this.apiUrl}?${params}`;
return this.http.get(queryUrl).map((response: Response) => {
return (<any>response.json()).items.map(item => {
// console.log("raw item", item); // uncomment if you want to debug
return new SearchResult({
id: item.id.videoId,
title: item.snippet.title,
description: item.snippet.description,
thumbnailUrl: item.snippet.thumbnails.high.url,
});
});
});
}
}
는
새로운 HttpClient는 자동으로 json을 반환한다고 가정하므로 'response.json()'이 더 이상 필요하지 않습니다. 문서 (https://angular.io/guide/http)를 읽는 것이 좋습니다. 필요한 모든 것이 있어야합니다. – LLai
어떤 오류가 발생하고 있거나 어떤 문제가 있습니까? – Aravind