如何使用get http请求发送参数(id)



我开始键入和http。get仅接受URL,所以我不知道如何一个人的发送和身份证从我的API中获取该人,该人从SQL数据库中获取它。

public getByID(n :number) : Promise<any>{
    return this.http.get(this.url).toPromise();
  }

也许将其附加到URL?

您可以选择使用模板字符串将参数添加到URL

return this.http.get(`${this.url}?id=${n}`).toPromise();

如果要使用查询字符串将变量传递给API。记住要正确逃脱(urlencode)!如果您不希望变量可见,也可以使用帖子。

手动格式化查询字符串在简单情况下很好。但是当有很多参数时,这可能会变得乏味。

您可以编写一个简单的实用程序功能,该功能处理为您构建查询格式。

function formatParams( params ){
return "?" + Object
    .keys(params)
    .map(function(key){
        return key+"="+encodeURIComponent(params[key])
    })
    .join("&")

}

您将使用这种方式来构建请求。

var endpoint = "https://api.example.com/endpoint"
var params = {
a: 1,
b: 2,
c: 3
}

return this.http.get(this.url+ formatParams(params)).toPromise();

这是您需要做的

的示例
public getByID(n :number) : Promise<any>{  
    return this.http.get(this.url + '?id=' + number).toPromise();
}

如果要通过id,只需做出post请求即可。它想要return this.http.post(this.url, {id: n}).toPromise(),第二个参数只是请求的主体,它可以是对象的数组,也可以是对象。然后,在服务器端,您只需将其解析为JSON格式即可。您也可以使用get方法,但是您必须将其发送为搜索URL参数。在此处查看

最新更新