C# 카카오 스토리 이미지 포스팅 에러

안녕하세요.

이미지 업로드까지는 완료 하였습니다.

이미지와 글 포스팅를 진행 중에 막히게 되었습니다.

소스 코드는 아래와 같습니다. c#으로 개발하고 있습니다.

    public string Posting(string contents, string[] files)
    {
        // 이미지 업로드
        var imageList = this.UploadFilesToRemoteUrl(files);
        string apiURL = "https://kapi.kakao.com/v1/api/story/post/photo";

        string postingId = string.Empty;
        string token = AccessToken;
        string header = "Bearer " + token;
        byte[] contentBytes = Encoding.UTF8.GetBytes("image_url_list=" + imageList + "&content=" + contents);

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
        request.Headers.Add("Authorization", header);
        request.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
        request.Method = "POST";
        request.KeepAlive = true;
        request.ContentLength = contentBytes.Length;

        Stream st = request.GetRequestStream();
        st.Write(contentBytes, 0, contentBytes.Length);
        st.Close();

        try
        {
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string status = response.StatusCode.ToString();
            if (status == "OK")
            {
                Stream stream = response.GetResponseStream();

                string sResultJson = new StreamReader(stream).ReadToEnd();
                var jResult = JObject.Parse(sResultJson);
                postingId = jResult["id"].ToString();
            }
            else
            {
                MessageBox.Show("Error 발생=" + status);
            }
            st.Close();
            response.Close();
        }
        catch (WebException e)
        {
            var resp = new StreamReader(e.Response.GetResponseStream()).ReadToEnd();
            MessageBox.Show(resp.ToString());
        }

        return postingId;
    }

이미지 업로드 리턴값: ["/TZq14/hyqhTfMMxG/i7DLA9uWmA9sLrj3SCVjS0/img.png?width=420&height=588"]

에러 메세지와 에러 코드입니다. 에러 400번 발생.
{“msg”:“failed to parse the parameter. name=image_url_list, stringToParse=-, paramString=-, paramStringAlias=null”,“code”:-2}

어디가 문제인가요???

또… 자문 자답을 합니다…
var imageList = this.UploadFilesToRemoteUrl(files);
var encodedImageList = HttpUtility.UrlEncode(imageList);

이미지 리스트 리턴값을… UrlEncode로 변경해주니 정상 동작 하네요…

2개의 좋아요

C# API 사용 예시의 대한 정보로 이해가 잘안되서 막히던 부분이 많았는데
참고하여 연동하고 있습니다 감사합니다 꾸벅

1개의 좋아요

도움이 되셨다니, 저도 기쁘네요 ^^