반응형
우체국에서 일했는데도 400 오류, 생각할 수 있는 이유?
저는 Deepl API를 사용하고 있으며, Postman에서 요청을 실행하면 성공하지만, 앱에서 요청을 실행하면 400 Error만 반환됩니다.이것은 헤더가 올바르게 설정되어 있지 않다는 것을 의미하지만, Postman에서는 그대로입니다.여기서 무엇이 문제인지 지적해 주실 수 있나요?
async translateMessage(data = {}) {
const url = "https://api.deepl.com/v2/translate?auth_key=myAuthKey";
const response = await fetch(url, {
method: "POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*'
},
body: {
text: JSON.stringify(this.text),
target_lang: 'DE',
source_lang: 'EN'
}
});
return response.json();
},
POST /v2/translate?auth_key=[yourAuthKey]> HTTP/1.0
Host: api.deepl.com
User-Agent: YourApp
Accept: */*
Content-Length: [length]
Content-Type: application/x-www-form-urlencoded
auth_key=[yourAuthKey]&text=Hello, world&source_lang=EN&target_lang=DE
그body
URL 인코딩된 메시지의 속성(을 사용하여)application/x-www-form-urlencoded
content type)은 쿼리 파라미터의 문자열 또는 인스턴스 중 하나여야 합니다.
솔루션
- 키/값 쌍의 개체를 에 전달합니다.
URLSearchParams
컨스트럭터 - 덧붙이는 게 좋을 거야
auth_key
(필요한 쿼리 파라미터의 1개)를 지정하여 URL에서 삭제합니다. - 제거한다.
JSON.stringify()
에서text
불필요한 따옴표를 번역에 삽입할 수 있습니다.
const url = 'https://api.deepl.com/v2/translate';
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*'
}, 1️⃣
body: new URLSearchParams({
auth_key: myAuthKey, 2️⃣
text: this.text, 3️⃣
target_lang: 'DE',
source_lang: 'EN'
})
});
언급URL : https://stackoverflow.com/questions/69931424/400-error-despite-working-in-postman-possible-reasons
반응형
'programing' 카테고리의 다른 글
Vuetify 콤보 상자의 @change를 통해 대상 요소를 전달합니다. (0) | 2022.08.01 |
---|---|
Vuex에서 POST 요청을 통해 상태 데이터를 전송하는 방법 (0) | 2022.08.01 |
Java 8 스트림 - 수집과 감소 (0) | 2022.08.01 |
인라인 함수를 호출할 때 정의되지 않은 참조 (0) | 2022.08.01 |
일부 경로에서 글로벌컴포넌트(예를 들어 navbar)를 숨기려면 어떻게 해야 합니까? (0) | 2022.08.01 |