자신에게 보내기 에러

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


C#, 945696
내용 : 아래 코드 실행 시 ‘byte[] responseBytes = client.UploadData(url, “POST”, byteArray);’ 에서 ‘원격 서버에서 (400) 잘못된 요청 오류를 반환했습니다.’ 발생

코드

void KaKaoSend()
        {
            // 토큰 불러오기
            Dictionary<string, string> tokens;
            try
            {
                using (StreamReader file = File.OpenText(fileName))
                {
                    string json = file.ReadToEnd();
                    tokens = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
                }
            }
            catch (Exception e)
            {
                LogWrite($"ReadToken : {e.Message}");
                return;
            }

            string url = "https://kapi.kakao.com/v2/api/talk/memo/default/send";

            var headers = new WebHeaderCollection();
            headers.Add("Authorization", $"Bearer {tokens["access_token"]}");
            headers.Add("Content-Type", "application/json");

            Dictionary<string, object> data = new Dictionary<string, object>
            {
                { "template_object", JsonConvert.SerializeObject(new
                    {
                        object_type = "text",
                        text = "testmsg",
                        link = new {}
                    })
                }
            };

            using (var client = new WebClient())
            {
                client.Headers = headers;

                string jsonData = JsonConvert.SerializeObject(data);
                byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(jsonData);

                byte[] responseBytes = client.UploadData(url, "POST", byteArray);
                string responseJson = System.Text.Encoding.UTF8.GetString(responseBytes);
                dynamic response = JsonConvert.DeserializeObject(responseJson);

                LogWrite($"Response : {response}");
            }
        }

안녕하세요.

application/x-www-form-urlencoded 형식으로 전달 부탁드립니다.

예)

using (WebClient client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    string result = client.UploadString("https://kapi.kakao.com/v2/api/talk/memo/default/send"
                      , "template_object=%7B%22object_type...");
}