带有正文示例的 Angular Put 请求

Posted

技术标签:

【中文标题】带有正文示例的 Angular Put 请求【英文标题】:Angular Put request with body example 【发布时间】:2019-05-25 15:49:57 【问题描述】:

PUT 请求的 URL 是 http://localhost:8080/user/userId/update

user 是带有 JSON 数据的主体,userId 是字符串。Update 是一种方法。

在哪里 用户= “名称”:“值”, “年龄”:“价值:, “性别”:“价值”

userId=123456

如何在 Angular 4 及更高版本中发出 Angular httpClient PUT 请求

【问题讨论】:

angular.io/guide/http 【参考方案1】:

您应该使用HttpClient 从服务类中执行此操作。 创建一个服务并将 HttpClient 注入您的服务。 然后在您进行 http 调用的 putRequestHttp 方法中:

    putRequestHttp(userObj): any 
    //optional url query params for request
    const params = new HttpParams()
                    .set('param1', param1Value)
                    .set('param2', param2Value);

    return this.httpClient.put(`my-url-http`, userObj,  params  )

   

您需要从您的组件订阅putRequestHttp 服务方法。将用户对象传递给它,您的请求就会正常。

查看official tutorial guide here.

【讨论】:

你能解释一下我上面的问题吗? 更新了答案,创建服务并在服务方法中使用代码,在订阅时将user 数据从组件传递给您的服务方法。 查看官方教程:angular.io/tutorial/toh-pt6#update-heroes【参考方案2】:

与上面相同,但添加了更多的输入/不同的语法选项。我只是觉得这更容易阅读/更清洁。假设 User 是一个已定义的类型,并且路由的返回类型也是更新后的用户:

putUser = (user: User): Observable<User> => 
    return this.httpClient.put<User>('api route', user);

【讨论】:

以上是关于带有正文示例的 Angular Put 请求的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 JWT 的 Angular 和 Spring Boot 服务的 PUT 请求出现 403 错误

Express 无法接收来自 axios put 请求的正文

CORS 预检返回 200,但随后的 PUT 从未发生(带有外部 REST API 的 Angular JS)

使用带有 Angular 的 $http 的 PUT 方法时向查询字符串添加参数

Jmeter 文件上传场景 - 使用正文发出 PUT

PUT 和 POST 请求是不是需要/预期有请求正文?