Performs http requests using XMLHttpRequest
as the default backend.
class Http { protected _backend: ConnectionBackend protected _defaultOptions: RequestOptions request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> get(url: string, options?: RequestOptionsArgs): Observable<Response> post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> delete(url: string, options?: RequestOptionsArgs): Observable<Response> patch(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> head(url: string, options?: RequestOptionsArgs): Observable<Response> options(url: string, options?: RequestOptionsArgs): Observable<Response> }说明
Http
is available as an injectable class, with methods to perform http requests. Calling request
returns an Observable
which will emit a single Response
when a response is received.
Example
import {Http, HTTP_PROVIDERS} from '@angular/http'; import {map} from 'rxjs/operators'; @Component({ selector: 'http-app', viewProviders: [HTTP_PROVIDERS], templateUrl: 'people.html' }) class PeopleComponent { constructor(http: Http) { http.get('people.json') // Call map on the response observable to get the parsed people object .pipe(map(res => res.json())) // Subscribe to the observable to get the parsed people object and attach it to the // component .subscribe(people => this.people = people); } }Example
http.get('people.json').subscribe((res:Response) => this.people = res.json());The default construct used to perform requests, XMLHttpRequest
, is abstracted as a "Backend" ( XHRBackend
in this case), which could be mocked with dependency injection by replacing the XHRBackend
provider, as in the following example:
Example
import {BaseRequestOptions, Http} from '@angular/http'; import {MockBackend} from '@angular/http/testing'; var injector = Injector.resolveAndCreate([ BaseRequestOptions, MockBackend, {provide: Http, useFactory: function(backend, defaultOptions) { return new Http(backend, defaultOptions); }, deps: [MockBackend, BaseRequestOptions]} ]); var http = injector.get(Http); http.get('request-from-mock-backend.json').subscribe((res:Response) => doSomething(res));方法
|
---|
Performs any type of http request. First argument is required, and can either be a url or a Request instance. If the first argument is a url, an optional RequestOptions object can be provided as the 2nd argument. The options object will be merged with the values of BaseRequestOptions before performing the request. |
request(url: string | Request, options?: RequestOptionsArgs): Observable<Response>参数返回值Observable<Response>
|