gpt4 book ai didi

javascript - AWS API 网关的 HTTP 客户端请求

转载 作者:行者123 更新时间:2023-12-02 22:53:51 25 4
gpt4 key购买 nike

我有一个使用 typescript 的 Angular 前端,我正在尝试向AWS API网关发出http请求。现在的问题是,我需要将以下 javascript 代码编写为 typescript 代码并发送 http 请求,但我不知道如何。

对 AWS API 网关的请求需要 AWS Cognito jwtToken(在本例中为“accessToken”)。我还需要传递“类型”,它是要在 API 上执行的函数的名称(在本例中为“POST”)。我还需要传递一个字符串来选择我接收的数据。

Auth.currentSession().then(tok => {
const accessToken = tok.getIdToken().getJwtToken();
console.log('from floorview: ' + accessToken);

function requestItem(source) {

$.ajax({
type: 'POST',
url: 'https://XXXXXXXXXX.execute-api.eu-central-1.amazonaws.com/prop/dashboard',
headers: {
Authorization: accessToken
},
data: JSON.stringify({
Source: source.toString(),
tableName: 'h16b-testset',
operation: 'read'
}),
dataType: 'json',
contentType: 'application/json',
success: completeRequest,
error: function ajaxError(jqXHR, textStatus, errorThrown) {
console.error('Error requesting ride: ', textStatus, ', Details: ', errorThrown);
console.error('Response: ', jqXHR.responseText);
alert('An error occured when requesting your unicorn:\n' + jqXHR.responseText);
}
}).then(r => console.log(r));
}

requestItem(996);

function completeRequest(result) {
console.log('Response received from API: ', result);
}

});
}

现在我的问题是,如何在使用 Angulars HTTPClient 时将此 JavaScript 代码编写为 typescript 代码。如果还有其他方法请告诉我。当我尝试使用 HTTPClient 运行此代码时,我总是收到 401 或 403。

Auth.currentSession().then(tok => {
const accessToken = tok.getAccessToken();
const jwt = accessToken.getJwtToken();

this.authKey = jwt;


const params = new HttpParams().set('Source', '996');
params.append('tableName', 'h16b-testset');
params.append('operation', 'read');
const headers = new HttpHeaders().set('Authorization', this.authKey);
headers.append('content-type', 'application/json');

this.http.request(
'POST',
'https://XXXXXXXX.execute-api.eu-central-1.amazonaws.com/prop/dashboard',
{
headers,

responseType: 'json'
}
).subscribe(
res => {
console.log('hallo' + res);
},
err => {
console.log('error occured with httpclient: ' + err.message);
}
);
});

最佳答案

将您的 http 客户端重写为:

    this.http.post(
'https://XXXXXXXX.execute-api.eu-central-1.amazonaws.com/prop/dashboard',
{
Source: '<id>',
tableName: 'h16b-testset',
operation: 'read'
},
{
headers: new HttpHeaders({'Content-type': 'application/json', 'Authorization': '<token>'})
}
).subscribe(res=> console.log(res), failure => console.error(failure))

这样,您将在请求正文中发送源,并在 header 中发送授权 token 。

有关 HttpClient 的更多信息,请参阅 https://angular.io/guide/http .

关于javascript - AWS API 网关的 HTTP 客户端请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58074804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com