2017-04-06 13 views
0

Microsoft認知翻訳サービスAPIのラッパーを開発しており、RestSharpをメインドライバとして使用しています。Microsoft Translateサービスから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によると、ロケールを2文字の小文字の文字列とISO 3166の2文字の大文字のサブカルチャーコードとして指定する必要があります。私は 'nb-NO'が正しいと仮定していますか? (私も 'NBなし'を試しました)。ドキュメントでは、ダッシュ、カンマまたはその他のものは指定されていないので、それはかなり不明です。

もう1つは言語コードそのものです。しかし、私は内部サーバーエラーを取得し、ドキュメントの状態は、私は言語コードの文字列の配列を提供しなければならない、と私は/GetLanguagesForTranslate

結果は200 OKですを呼び出すときに、私は得られた値を挿入しています次のメッセージ:

サーバーで要求の処理中にエラーが発生しました。詳細については、サーバーのログを参照してください。

私は何が間違っている可能性がありますか?ヘルプをいただければ幸いです。

+0

実際のREST要求と応答データを表示して、使用している 'languageCodes'パラメータ値やURLなどを推測していない場合に役立ちます。 – kwill

+0

また、 Webテストコンソールを使用して問題が発生した場合、またはコード内で問題が発生した場合 – 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

関連する問題