我的Angular HTTPClient POST是否请求此简单的URL发布请求

时间:2019-11-19 18:22:47

标签: angular typescript http

我想向局域网上的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(即最终产品)吗? 提前致谢!

1 个答案:

答案 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));

参考

Angular HttpClient