HttpClient HttpRequestException

我遇到了HttpClient的问题,我一直HttpRequestException occurred in mscorlib.dll 。 我已经从SVN下载了以前的工作版本,并且我一直得到相同的exception。

为什么我突然得到这个例外,即使我运行的代码已经运行好几周了?

现在我正在尝试使用这个简单的代码进行调试,但无论我做什么,我都会得到相同的exception

 HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Accept .Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue( "application/json")); HttpResponseMessage response = await client.GetAsync("http://api.themoviedb.org/3/movie/550?api_key=x"); return await response.Content.ReadAsStringAsync(); 

我的innerException如下:

 The remote name could not be resolved: api.themoviedb.org System.Exception System.Net.WebException 

我尝试的每个url都是一样的,它们都在我的浏览器中工作。 这是exception和堆栈跟踪:

 res "System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The remote name could not be resolved: 'api.themoviedb.org' at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificat‌​ion(Task task) 

这是您网络上的DNS问题。 您的工作站(或收到错误的服务器)无法解析DNS名称“api.themoviedb.org”。 此DNS名称可以从我的计算机和其他在线网络中解析。

请咨询您当地的网络管理员。

UPDATE

所以,你的机器可以解析名称,但HttpClient不能。 让我们看看我们是否可以解决这个问题。 我将假设这是一个桌面应用程序,而不是一个网站。 如果我错了,请告诉我 – 还有一些额外的考虑因素。

您将不得不按照本指南启用网络跟踪: 如何:配置网络跟踪 。 您希望按照该链接的指定配置App.config文件。 简而言之,您应该在配置文件中添加以下内容:

                   

应更改network.log值以满足您的需求。 继续这样做,看一下输出文件。

现在,诀窍是使用该文件来找出存在问题的原因。 有关如何解释该文件的提示,请参阅解释网络跟踪 ,尽管信息稀疏。 我们正在寻找的是DNS无法解决的原因。 因此,搜索该文件为“api.themoviedb.org”。 如果您愿意,请用结果更新问题,我会看看是否可以从那里帮助您。