[英]Implement curl post request in JavaScript Fetch API
我正在嘗試在 JS Fetch API 中使用 curl 來實現這個發布請求:
curl --user apikey:{my_secret_apikey} --request POST --header "Content-Type: application/json" --data "{\"text\":[\"Hello\"],\"model_id\":\"en-es\"}" "{my_secret_url}/v3/translate?version=2018-05-01"
我在實現 API 密鑰時遇到問題。
我試過這個,但它不起作用。 我從服務器收到 401 未經授權的錯誤。
fetch(url, {
method: "POST",
headers: { 'Content-Type': 'application/json' },
user: {
"apikey": blablabla_api_key
}
body: {
"text": [term],
"model_id": "en-hi"
}
}).then(res ........
任何幫助表示贊賞!
編輯:如果您對如何使用其他一些 HTTP 庫將這個帖子請求實現到 JS 有任何其他建議,那也很有幫助!
使用授權 header 編輯的代碼:
let headers = new Headers();
headers.append('Authorization', 'Basic ' + btoa("apikey" + ":" + "my_api_key"));
headers.append('Content-Type', 'application/json');
fetch(url, {
method: "POST",
headers: headers,
body: {
"text": ["Hello"],
"model_id": "en-es"
}
}).then(result => {
console.log(result);
resolve(result.translations[0].translation);
}).catch(err => console.log(err));
這會導致 400 Bad Request 錯誤,即使 curl 請求工作正常。
希望我回答你的問題還為時不晚。 我遇到了和你一樣的問題,我的解決方案是將授權編碼為 base64。
我正在使用 Node.js,所以我需要使用 Buffer 進行編碼過程。 如果我正確理解了您的問題,您必須執行以下操作:
let buffer = Buffer.from(apikey:{my_secret_apikey})
let base64data = buff.toString('base64')
您的授權 header 應設置為如下所示:
headers: {'Authorization': `Basic ${base64data}`}
這至少幫助我解決了我一直在努力解決的問題。 希望它也適用於你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.