我正在尝试在应用程序中使用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;
}
}
如果有人有想法,请告诉我。
答案 0 :(得分:0)
经过一些进一步的开发,我现在知道错误在于我通过URI传递的语言环境。在进一步解析WebException之后,我得到状态码ProtocolError,消息“Message:'locale'必须是有效的语言”。但是,我认为'en'是一种有效的语言......:/