【发布时间】:2017-01-02 18:42:29
【问题描述】:
Angular 1 服务
我正在将我的应用程序从 angular 1 迁移到 angular 2。
这个 Angular 1 服务调用工作正常并得到响应
"getUserResource": function () {
return $resource(basePath + "api/v3/user/GetUser/:name", { name: "@name",password: "@password"}, {
get: { method: "GET", isArray: true }
});
},
Angular 2
这个 Angular 2 调用没有击中 web Api 控制器,它给出了 400 bad request 错误
getUserResourcePromise(): Promise<User[]> {
let params = new URLSearchParams();
params.set('name', 'test');
params.set('password', 'test');
return this.http.get(this.baseUrl + 'api/v3/user/GetUser/:name', { search: params.toString(), headers: this.headers })
.toPromise()
.then(response => response.json().data as User[])
.catch(this.handleError);
}
Angular 1 与 Angular 2 的网址
http://localhost:58999/api/v3/user/GetUser/test?password=test(angular 1 url)
http://localhost:58999/api/v3/user/GetUser/:name?name=test&password=test(angular 2 url)
网络 API 控制器
谁能告诉我如何制作 angular 2 URL 来点击这个控制器,我需要做些什么改变?
[RoutePrefix("api/v3/user")]
[HttpGet]
[ResponseType(typeof(UsersModel))]
[Route("GetUser/{name}")]
public async Task<IHttpActionResult> GetUser(string name,string password) {
}
【问题讨论】:
-
您能否使用 Postman 的 Angular 2 URL 成功测试 GET 请求?
-
不,我正在构建的 angular 2 url 是错误的,谁能告诉我如何在 angular 2 中构建正确的 url(即localhost:58999/api/v3/user/GetUser/test?password=test)?
标签: http angular asp.net-web-api