2017-05-31 111 views
7

我不知道如何使API調用這樣的方法:Angular,Http GET參數?

[HttpGet] 
[ActionName("GetSupport")] 
public HttpResponseMessage GetSupport(int projectid) 

因爲它是GET,但仍然有一個參數來傳遞,如何做到這一點? 會是這樣的嗎?

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

的可能的複製[如何URL參數(查詢字符串)傳遞給角2上的HTTP請求(https://stackoverflow.com/questions/ 34475523/how-to-pass-url-arguments-query-string-to-a-http-request-on-angular-2) – anoop

回答

17

有這樣的事情:

 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 }) 

當然,附加每次需要params PARAM。它給你更多的靈活性,而不僅僅是使用URL字符串將params傳遞給請求。

EDIT(2017年9月28日):作爲Al-Mothafar的評論指出,search被棄用角4的,所以你應該使用params

EDIT(2017年2月11日):如果您正在使用HttpClient現在有HttpParams,其外觀和使用這樣的:

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

然後是PARAMS添加到,基本上以同樣的方式請求:

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

更多在docs爲HttpParamsHttpClient

+3

'4'的搜索不推薦使用,而是使用'params' –

0

我假設你正在使用一些angular2服務。您可以致電HTTP使用參數如下圖所示

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

如果你看一個更加面向對象的解決方案,你可以看看RequestOptions和URLSearchParams類 – ip512