2017-04-06 5 views
0

Microsoft인지 서비스 번역 API에 대한 래퍼를 개발하고 RestSharp를 기본 드라이버로 사용하고 있습니다.Microsoft 번역 서비스에서 GetLanguageNames를 사용할 때 InternalServerError

지금까지 내가 구현 한/번역 및/GetLanguagesForTranslate (언어 코드를 반환하는)하지만 난 여기 코드의 잘못된 조각 /GetLanguageNames을 구현하기 위해 노력하고 벽 충족 :

public void EnrichCodesWithNames(IEnumerable<Language> languageCodes) 
    { 
     var request = new RestRequest(resource, Method.POST); 
     request.AddParameter("appid", _tokenRefresher.BearerToken);   
     request.AddParameter("locale", "nb-NO"); 
     request.AddParameter("languageCodes", string.Join(",", languageCodes.Where(c => !c.Code.Contains("-")).Select(c => c.Code).ToArray()));    

     var result = _restClientTranslation.Execute(request); 
     if(result.StatusCode == HttpStatusCode.OK) 
     { 
      var element = result.Content; 
     } 
    } 

the documentation에 따르면 로캘을 두 자의 소문자 문자열 및 ISO 3166 두 자로 된 대문자 하위 코드로 지정해야합니다. 나는 'nb-NO'가 맞을 것이라고 가정하고있다. (나는 'no-NB'도 시도했다.). 문서에는 대시, 쉼표 또는 다른 어떤 것도 지정되어 있지 않으므로 명확하지 않습니다.

두 번째로 언어 코드 자체입니다. 그러나, 내가 가진 내부 서버 오류를 얻을, 문서 상태는 나는 언어 코드의 문자열 배열을 제공해야한다, 나는 /GetLanguagesForTranslate

결과가 200 OK입니다 호출 할 때 내가 얻은 값을 삽입하는거야 다음 메시지 :

서버가 요청을 처리하는 중 오류가 발생했습니다. 자세한 내용은 서버 로그를 참조하십시오.

나는 무엇이 잘못 될 수 있는지를 놓치고 있습니다. 도움을 주시면 감사하겠습니다.

+0

실제 REST 요청 및 응답 데이터를 표시하여 사용중인 'languageCodes'매개 변수 값, URL 등을 추측 할 수없는 경우 도움이됩니다. – kwill

+0

또한 문제가 웹 테스트 콘솔을 사용하여, 아니면 그냥 코드에서? – kwill

+0

내부 서버 오류 및 기울임 꼴로 작성된 텍스트는 모두 다시 나타납니다. 지금까지 대부분의 다른 메소드는 아무런 문제없이 구현되었습니다. 내부 서버 오류가있는 XML과 오류가있는 하위 노드 만 있습니다. 서버 로그를 살펴 보도록 요청합니다. 물론 액세스가 없습니다. –

답변

-1

이 정보가 도움이됩니까? 다음은 curl을 사용하여 GetLanguageNamesGetLanguagesForTranslate으로 전화하는 예입니다.

curl -H "Authorization: Bearer %Bearer%" https://api.microsofttranslator.com/v1/http.svc/GetLanguageNames 

curl -H "Authorization: Bearer %Bearer%" https://api.microsofttranslator.com/v2/http.svc/GetLanguagesForTranslate 

베어러 토큰 위 획득 및 사용 환경 변수로 만들어졌다 :

curl -k --data "" "https://api.cognitive.microsoft.com/sts/v1.0/issueToken" -H "Ocp-Apim-Subscription-Key:<your key>" > Bearer.txt 
set /p Bearer= < Bearer.txt 

항상 코딩하기 전에 API 호출을 프로토 타입 curl를 사용

. 학습 곡선을 단순화합니다.

+0

도움이되지 않습니다. 이미 베어러 토큰을 사용하여 구현 된 몇 가지 방법이 있습니다. 나는 200 OK를 얻는다. 그러나 메시지 내용에 InternalServerError가 표시된다. –

+0

또한, 당신이 제공 한 예제는 API의 v1에서 나온 것이다. 내 OP에서 현재 버전의 설명서에 대한 링크가 있습니다 –

+0

내 대답은 정확합니다. 너는 단지 그것을 얻지 못하고있다. – BSalita