2011-07-21 10 views
0

アプリケーションでMicrosoft Translator Webサービスを使用しようとしています。 http://msdn.microsoft.com/en-us/library/ff512414.aspxで与えられた例に従って言語名を取得しようとすると、実際に言語名を取得しようとすると、(400)Bad Requestエラーが発生します。私が使用Microsoft Webサービスにアクセスしようとすると、400 Bad Requestエラーが発生する

URIは次のとおりです。私は、Webサービスに要求を送信するためにDataContractSerializerとWebRequestクラスからのストリームを使用した後

private const string languageString = "http://api.microsofttranslator.com/v2/Http.svc/GetLanguageNames"; 
private string[] usableLanguages = { "en", "nl", "es", "de" }; 

// Create a URI to use. 
string getLanguages = string.Empty; 
getLanguages = languageString + string.Format("?appId={0}&locale;=en", appKey); 
Uri langRequest = new Uri(getLanguages); 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(langRequest); 

。しかし、WebRequestからの応答を取得しようとすると、(400)Bad Requestエラーが発生します。

WebResponse response = null; 
try 
{ 
    // This causes the exception. 
    response = req.GetResponse(); 
} 
catch (WebException e) 
{ 
    MessageBox.Show(e.ToString()); 
} 
finally 
{ 
    if (response != null) 
    { 
     response.Close(); 
     response = null; 
    } 
} 

誰かがアイデアを持っている場合は、教えてください。

+1

MSのAppIDはありますか?あなたがリンクした記事から: 'string appId = // AppIDを入手するためにhttp://msdn.microsoft.com/en-us/library/ff512386.aspxにアクセスする' – Tim

+0

はい私は...ちょうどしたくないここに投稿する... – ThaMe90

答えて

0

さらに進んだ後、私はエラーがURIに沿って渡すロケールにあることを知りました。 WebExceptionをさらに解読した後、私は状態コードProtocolErrorを取得し、メッセージ "Message: 'locale'は有効な言語でなければなりません。しかし、私は 'en'が有効な言語だと思った:/

関連する問題