尝试访问Microsoft Web服务会导致400 Bad Request错误

时间:2011-07-21 07:53:14

标签: c# .net web-services

我正在尝试在应用程序中使用microsoft翻译器webservice。虽然当我尝试根据http://msdn.microsoft.com/en-us/library/ff512414.aspx给出的示例获取语言名称时,当我实际尝试获取语言名称时,我得到(400)错误请求错误。

我使用的URI是:

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);

之后,我使用DataContractSerializer和来自WebRequest的流将请求发送到Web服务。但是当我尝试从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 个答案:

答案 0 :(得分:0)

经过一些进一步的开发,我现在知道错误在于我通过URI传递的语言环境。在进一步解析WebException之后,我得到状态码ProtocolError,消息“Message:'locale'必须是有效的语言”。但是,我认为'en'是一种有效的语言......:/