如何通过传递参数来获取请求?我试过这个,但得到404错误
getOrderbyOrderNo() {
this.orderno = this.cookie_service.get('key');
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('orderno', this.orderno );
let params = new URLSearchParams();
params.append("someParamKey", this.orderno )
return this.http.get('http://localhost:8080/View/orders', { headers: headers, params: params })
}
输出
ERROR
Object { _body: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot GET /View/orders</pre>\n</body>\n</html>\n", status: 404, ok: false, statusText: "Not Found", headers: {…}, type: 2, url: "http://localhost:8080/View/orders" }
答案 0 :(得分:1)
IMO有两种方法可以通过http请求发送params。
通过将其附加到此类网址 -
return this.http.get('http://localhost:8080/View/orders/'+this.orderno, { headers: headers })
另一种方法是,如果您使用httpclient
,那么您可以在这样的选项中发送参数 -
let httpParams = new HttpParams()
.set('orderno', this.orderno);
有关此处的更多信息,请阅读
在get
类型的请求中,没有请求的正文部分,因此您必须在您的URL中附加您的参数,即params或查询参数。或者在选项中使用第二种方式。
答案 1 :(得分:1)
如果您使用的是httpclient,那么您应该这样做
let params = new HttpParams();
params = Params.append('firstParameter', parameters.valueOne);
params = Params.append('secondParameter', parameters.valueTwo);
return this._HttpClient.get(`${API_URL}/api/logs`, { params: params })
或者您可以创建参数对象
export interface GetParams {
firstParameter?: string;
secondParameter?: string;
..more param you want
}
Const getParamsobj : GetParams = {
firstParameter: 'value',
secondParameter: 'value'
..other params
}
return this._HttpClient.get(`${API_URL}/api/logs`, { params: getParamsobj })
答案 2 :(得分:0)
你可以传递这样的参数:
return this.http.get('http://localhost:8080/View/orders?someParamKey=xyz&anotherParam=abc
', { headers: headers})
答案 3 :(得分:0)
传递参数和标题在HttpClient
中有所不同,因为它们是不可变的,如果要传递参数,则应使用HttpParams
。
{ params: new HttpParams().set('name', term) }
答案 4 :(得分:0)
试试这个:
将此包导入您的班级:
import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';
像这样注入HttpClient
:
constructor(private _http: HttpClient) {}
发送请求:
let url = "your url";
let Params = new HttpParams();
Params = Params.append('param1', value1);
Params = Params.append('param2', value2);
let header: HttpHeaders = new HttpHeaders();
header = header.append('Content-Type', 'text/plain');
return this._http.get(url , { params: Params, headers: header })
.map((response: Response) => {
});