Pozadie otázky:
Snažím sa urobiť jednoduchý HttpWebRequest
Web API, ktoré som hostil v Azure.
Otázka:
Ak sa dostanem k môjmu koncovému bodu webového rozhrania API cez prehliadač alebo nástroj žiadosti, napríklad Postman, dostávam JSON
odpoveď bez problémov.
Ak sa pokúsim pristúpiť k rovnakému koncovému bodu prostredníctvom tlačidla a HttpWebRequest
Zavolajte mi 500 fatálnych chýb, ale som schopný vidieť v odozve vlastnosť Try Catch
že JSON
odpoveď.
The remote server returned an error: (500) Internal Server Error.
Kód:
Nasleduje jednoduchá požiadavka, ktorú robím na Web API, ktoré mám. Ako už bolo uvedené, v Catch
odpoveď je vracajúc sa späť JSON
Očakávam, ako je zobrazené:
{"ResponseMessage":"OK","ResponseContent:[{"kind":"youtube#playlistItem","etag":""gMxXHe- ........ etc }]}
Požiadavka:
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();
}
Oceňujem, že identifikácia príčiny 500nn "t rovno dopredu, ale môže niekto poskytnúť dôvod, prečo by som sa dostať túto chybu, ale aj naďalej dostávajú JSON
zo služby, ktorá je zrejme hodiť výnimku?
odpovede:
0 pre odpoveď č. 1existujú niektoré vlastnosti WebHeaders
musíte byť opatrní!
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()