2017-05-31 23 views
7

Böyle bir yönteme bir API çağrısı yapmak için nasıl bilmiyorum? Böyle bir şey mi olurdu?Açısal, Http GET parametresiyle mi? o GET Çünkü</p> <pre><code>[HttpGet] [ActionName("GetSupport")] public HttpResponseMessage GetSupport(int projectid) </code></pre> <p>ama yine geçirmek için bir parametre var bunu nasıl:

let headers = new Headers(); 
     headers.append('Content-Type', 'application/json'); 
     headers.append('projectid', this.id); 

     this.http.get('http://localhost:63203/api/CallCenter/GetSupport', { headers: headers }) 
+3

Olası kopyalar (https://stackoverflow.com/questions/ [bir HTTP isteğine Açısal 2'ye url argümanları (sorgu dizesi) geçmek nasıl] 34475523/how-to-pass-url-arguments-sorgu-string-a-http-request-on-angular-2) – anoop

cevap

17

böyle bir şey olması gibi aşağıda parametreleri içeren HTTP çağırabilirsiniz: Elbette

 let headers = new Headers(); 
     headers.append('Content-Type', 'application/json'); 
     headers.append('projectid', this.id); 
     let params = new URLSearchParams(); 
     params.append("someParamKey", this.someParamValue) 

     this.http.get('http://localhost:63203/api/CallCenter/GetSupport', { headers: headers, search: params }) 

, sen params gereken her param ekleme. Bu, isteklere paramitleri iletmek için bir URL dizesi kullanmaktan çok daha fazla esneklik sağlar.

DÜZENLEME (2017/09/28): Eğer kullanıyorsanız: açıklama belirtildiği Al-Mothafar gibi Eğer params

EDIT (2017/11/02) kullanmalıdır nedenle, search, Açısal 4 itibariyle önerilmemektedir

let params = new HttpParams().set("paramName",paramValue).set("paramName2", paramValue2); //Create new HttpParams 

ve sonra, temelde aynı şekilde istek params ekleyin: yeni HttpClient bakmak ve bunun gibi kullanıldıkları, şimdi HttpParams vardır

this.http.get(url, {headers: headers, params: params}); 
//No need to use .map(res => res.json()) anymore 
HttpParams için docs

Daha HttpClient

ait
+3

'' arama '' köşeli 4 için kullanımdan kaldırıldı, yerine params –

0

Bazı angular2 servislerini kullandığınızı kabul ediyorum. Sen

import {Injectable} from '@angular/core'; 
import {Http} from '@angular/http'; 
import 'rxjs/add/operator/map'; 

@Injectable() 

export class MockService { 
    constructor(public http: Http) { 
    } 

getFakeUser(pageNumber) { 
    let URL = "https://randomuser.me/api/?page=" + pageNumber + 
     "&results=10&inc=name,gender,nat,picture&noinfo"; 
    return new Promise((resolve, reject) => { 
     this.http.get(URL) 
      .map(res => res.json()) 
      .subscribe(data => { 
       // console.log(data) 
      resolve(data); 
      }, (error => { 
       reject(error); 
      })); 
     }); 
     } 
    } 
+0

Daha fazla nesne yönelimli bir çözüme bakarsanız, RequestOptions ve URLSearchParams sınıflarına bakabilirsiniz – ip512