2017-05-31 193 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