我想向局域网上的IP地址和端口发送一个简单的参数。在Postman中,这看起来像发送URL为192.168.4.2:80/?led=1的POST请求。这会将参数led = 1发送到IP地址和端口。我正在尝试使用Angular的HTTP客户端执行此简单操作,但是对于是否应该使用标头感到困惑。在邮递员中发送URL时不使用标头,是否需要在HTTPClient中使用标头?如果可能的话,我也只想发送一个URL(192.168.4.2:80/?led=1),但是如果我不包含参数,则会收到错误消息。
到目前为止,这是我的代码。
sendData (myNumber) {
//var headers = new Headers();
//let headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
})
};
console.log(this.http.post('http://192.168.4.2:80/','led=1', httpOptions).subscribe(data=>console.log(data)))
}
SO的基本问题是1.我是否正在完成自己想完成的工作?和2.是否有一种方法可以仅在Angular中发送URL POST请求,还是需要发送带有URL,参数和标头的POST请求?我假设该函数在后台进行了一些字符串解析,但是我不确定它是否可以实现最终目标。 还有一种方法可以记录实际发送到服务器的HTTPClient(即最终产品)吗? 提前致谢!
答案 0 :(得分:1)
尝试一下。
创建HttpParams对象并设置参数值。
示例:
HttpParams params = new new HttpParams({fromObject:{“ param1”:1“,” param2“,2}});
这等效于 /?param1 = 1&param2 = 2
输入您的代码
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
}),
params: new HttpParams({
fromObject: {"led": 1}
})
};
this.http.post("http://192.168.4.2:80", {}, httpOptions)
.subscribe(data => console.log(data));
参考