유니티 네이버 클로바 얼굴인식 연동.


안녕하세요. 네이버 API 를 유니티에서 연동하고 싶습니다. 우선 c#에서는 잘 작동이 되는데 유니티에서 돌릴떄 TlsException: Invalid certificate received from server. Error code: 0xffffffff80092012 Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) 에러 메세지가 뜹니다.

이 에러 어떻게 해결해야 하나요 아래는 개발자 가이드 https://developers.naver.com/docs/clova/api/#/CFR/API_Guide.md#Java 어떻게 해결해야 하시는 분 있으신가요?

using System; using System.Net; using System.Text; using System.IO; using System.Collections.Generic; using System.Collections.Specialized;

namespace NaverAPI_Guide { public class APIExamFace { static void Main(string[] args) { string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x"); string FilePath = "YOUR_FILE_NAME"; FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read); byte[] fileData = new byte[fs.Length]; fs.Read(fileData, 0, fileData.Length); fs.Close();

        string CRLF = "\r\n";
        string postData = "--" + boundary + CRLF + "Content-Disposition: form-data; name=\"image\"; filename=\"";
        postData += Path.GetFileName(FilePath) + "\"" + CRLF +"Content-Type: image/jpeg" + CRLF + CRLF;
        string footer = CRLF + "--" + boundary + "--" + CRLF;

        Stream DataStream = new MemoryStream();
        DataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
        DataStream.Write(fileData, 0, fileData.Length);
        DataStream.Write(Encoding.UTF8.GetBytes("\r\n"), 0, 2);
        DataStream.Write(Encoding.UTF8.GetBytes(footer), 0, Encoding.UTF8.GetByteCount(footer));
        DataStream.Position = 0;
        byte[] formData = new byte[DataStream.Length];
        DataStream.Read(formData, 0, formData.Length);
        DataStream.Close();

        string url = "https://openapi.naver.com/v1/vision/celebrity"; // 유명인 얼굴 인식
        //string url = "https://openapi.naver.com/v1/vision/face"; // 얼굴 감지
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Headers.Add("X-Naver-Client-Id", "YOUR_CLIENT_ID");
        request.Headers.Add("X-Naver-Client-Secret", "YOUR_CLIENT_SECRET");
        request.Method = "POST";
        request.ContentType = "multipart/form-data; boundary=" + boundary;
        request.ContentLength = formData.Length;
        using (Stream requestStream = request.GetRequestStream())
        {
            requestStream.Write(formData, 0, formData.Length);
            requestStream.Close();
        }
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream stream = response.GetResponseStream();
        StreamReader reader = new StreamReader(stream, Encoding.UTF8);
        string text = reader.ReadToEnd();
        stream.Close();
        response.Close();
        reader.Close();
        Console.WriteLine(text);
    }
}

}

  • 2018년 01월 11일에 작성됨

조회수 310


Banner nodejs

1 답변


ssl 에러입니다.

서버에서 받은 인증서가 뭔가 문제가 있는 것으로 보입니다.

우선 접속주소 https://~~에서 s를 빼고 http://~ 로 해서 테스트해보시기 바랍니다.

  • 2018년 01월 11일에 작성됨

  • 답변 감사합니다. 우선 s를 뻈더니 403 에러가 뜹니다. WebException: The remote server returned an error: (403) Forbidden.    정경식   2018.1.11 18:42     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close