C# 로컬 rest api로 키워드 이용하여 검색하기 이용중 401에러가 납니다

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개의 좋아요

너무 감사 합니다.
덕분에 해결 하였습니다.