0

问题背景:HttpWebRequest提供了500个状态码,但是从API返回JSON?

我试图做一个简单的HttpWebRequest与我在Azure中已经承载的Web API。

的问题:

如果我通过浏览器或我收到没有问题JSON响应的请求的工具,如邮差访问我的Web API终点。

如果我尝试通过HttpWebRequest呼叫访问相同的终点,则会收到500致命错误,但我能够在Try Catch的响应属性中看到已返回JSON响应。

The remote server returned an error: (500) Internal Server Error. 

验证码:

以下是我提出到Web API我有简单的请求。如所陈述之前,在Catch响应是返回回JSON我期望,如图所示:

{"ResponseMessage":"OK","ResponseContent:[{"kind":"youtube#playlistItem","etag":"\"gMxXHe- ........ etc }]} 

的请求:

string url ="http://myapi.azurewebsites.net/api/videos/GetYouTubeVideos"; 

    try 
    { 
     HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; 

     WebResponse wr = req.GetResponse(); 
    } 
    catch (WebException wex) 
    { 
     var pageContent = new StreamReader(wex.Response.GetResponseStream()) 
           .ReadToEnd(); 
    } 

我理解,识别的一个原因500并不是直截了当,但任何人都可以提供一个理由,我会得到这个错误,但仍然收到服务,显然是抛出异常JSON? !

+0

请问您的JSON响应是有效的?您提供的回复无效。可能是因为您添加了仅示例数据。第二件事添加您的完整方法代码并将异常添加到响应消息! –

回答

0

大约有WebHeaders你必须小心一些特性例如代码:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
webRequest.Method = "GET"; 
webRequest.Proxy = webProxy; 
webRequest.AllowAutoRedirect = true; 
webRequest.Timeout = 20 * 1000; 
webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; 
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"; 
WebResponse wr = webRequest.GetResponse() 
相关问题