java로 번역 API를 사용하려는데 어려움이 있어 질문드립니다.
처음에 Authorization 문제로 고생을 해서 스택오버플로우에서 아래 링크를 찾아 그 문제는 해결 된 것 같습니다.
https://stackoverflow.com/questions/12732422/adding-header-for-httpurlconnection
헌데 자꾸 wrong app_key라는 401오류가 표시 됩니다.
{"msg":"wrong appKey(--=) format","code":-401}
잘 적은 거 같고 포맷도 제대로 된 거 같은데 뭐가 문제인걸까요?
아래는 제가 적은 코드 입니다.
public static void main(String[] args)
{
String apikey = "--";
try
{
String text = URLEncoder.encode("안녕", "UTF-8");//번역될 문장
String postParams = "src_lang=kr&target_lang=en&query="+text;
String apiURL = "https://kapi.kakao.com/v1/translation/translate?"+postParams;
URL url = new URL(apiURL);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
String userCredentials = apikey;
String basicAuth = "KakaoAK "+new String(Base64.getEncoder().encode(userCredentials.getBytes()));
con.setRequestProperty("Authorization", basicAuth);
con.setRequestMethod("GET");
//con.setRequestProperty("Content-Type", "application/json");
//con.setRequestProperty("Content-Language", "utf-8");
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
int responseCode = con.getResponseCode();
System.out.println("responseCode >> "+responseCode);
BufferedReader br;
if(responseCode==200)
{ // 정상 호출
br = new BufferedReader(new InputStreamReader(con.getInputStream()));
}
else
{ // 에러 발생
br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
}
String inputLine;
StringBuffer res = new StringBuffer();
while ((inputLine = br.readLine()) != null)
{
res.append(inputLine);
}
br.close();
System.out.println("sd>> "+res.toString());
}