繁体   English   中英

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

[英]How to send a parameter (id) with get http request?

我开始输入,而http.get只接受url,所以我不知道如何发送一个人的ID并从我的api(从Sql数据库中获取它)中获取该人。

public getByID(n :number) : Promise<any>{

    return this.http.get(this.url).toPromise();
  }

也许将其附加到网址?

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

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

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

对于简单的情况,手动设置查询字符串的格式很好。 但是,如果有许多参数,它可能会变得乏味。

您可以编写一个简单的实用程序函数来为您构建查询格式。

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参数发送。 这里看看

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM