GET 방식으로 URL을 호출하여 메세지박스에 결과값을 표출하고자 했는데요,
REST API key로 입력했을때 오류가 나서 Admin키로도 입력했더니 마찬가지로 401 권한이 없음 오류가 발생했습니다.
코드는 아래와 같습니다.
public static bool HttpGet(string POI)
{
string app_key = REST API KEY;
string header = "KaKaoAK " + app_key;
// 타겟이 되는 웹페이지 URL
string Url = string.Format("https://dapi.kakao.com/v2/local/search/keyword.json"); //요청 URL
HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url);
wReqFirst.Headers.Add("Authorization", header);
wReqFirst.ContentType = "application/json; charset=utf-8";
wReqFirst.Method = "GET";
wReqFirst.ServicePoint.Expect100Continue = false;
HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();
Stream respPostStream = wRespFirst.GetResponseStream();
StreamReader reader = new StreamReader(respPostStream, Encoding.GetEncoding("EUC-KR"), true);
string responseFromServer = reader.ReadToEnd();
MessageBox.Show(responseFromServer);
reader.Close();
respPostStream.Close();
wRespFirst.Close();
return true;
}
도움 부탁드리겠습니다 (_ _)
해결 되었습니다. 자문자답입니다.
StringBuilder getParams = new StringBuilder();
getParams.Append("query=" + POI); 로 query값을 받아오고,
Url을 넘겨줄때 Url+getParams 로 같이 넘겨줘야 하는거였군요..
1개의 좋아요
안녕하세요. 제발 도움 부탁 드립니다.
답변내용처럼 작성 해 봤는데요 동일하게 오류가 발생하고 있습니다.
어느 부분이 문제 일까요?
StringBuilder getParams = new StringBuilder();
getParams.Append(“query=자양로21길”);
// 타겟이 되는 웹페이지 URL
string Url = string.Format(“https://dapi.kakao.com/v2/local/search/address.json”); //요청 URL
HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url + getParams);
getParams.Append(“query=” + HttpUtility.UrlEncode(“자양로21길”));
url encoding 하여 요청하도록 수정하세요…
private void button1_Click(object sender, EventArgs e)
{
HttpGet("자양로21길");
}
public static bool HttpGet(string POI)
{
string app_key = "2ba5cb7d4758*****4194";
string header = "KaKaoAK " + app_key;
// 타겟이 되는 웹페이지 URL
string Url = string.Format("https://dapi.kakao.com/v2/local/search/keyword.json"); //요청 URL
StringBuilder getParams = new StringBuilder();
getParams.Append("query=" + HttpUtility.UrlEncode(POI));
HttpWebRequest wReqFirst = (HttpWebRequest)WebRequest.Create(Url + getParams);
wReqFirst.Headers.Add("Authorization", header);
wReqFirst.ContentType = "application/json; charset=utf-8";
wReqFirst.Method = "GET";
wReqFirst.ServicePoint.Expect100Continue = false;
HttpWebResponse wRespFirst = (HttpWebResponse)wReqFirst.GetResponse();
Stream respPostStream = wRespFirst.GetResponseStream();
StreamReader reader = new StreamReader(respPostStream, Encoding.GetEncoding("EUC-KR"), true);
string responseFromServer = reader.ReadToEnd();
MessageBox.Show(responseFromServer);
reader.Close();
respPostStream.Close();
wRespFirst.Close();
return true;
}
말씀하신대로 소스를 수정했는데도 동일한 증상이 발생 합니다.
전체 소스 오려 드립니다. 답변 부탁드립니다
Url + getParams 합치신다면 request url 이 제대로 처리되지 않습니다.
getParams.Append("?query=" + HttpUtility.UrlEncode(POI)); 로 수정하세요…
1개의 좋아요
똑 같이 했는데 인증 "(401)권한이 없음"오류가 나고 있습니다
인증을 위해 해야하는것이 있나요?
인증키는 이미 받았고. Admin키를 사용해도 인증오류가 나고 있습니다
도와주세요
header의 인증키 입력이 잘못되어 있습니다.
KaKaoAK 가 아닌 KakaoAK 로(가운데 K가 대문자가 아니라 소문자 이어야 합니다.) 입력하십시요.
1개의 좋아요