webForumDet fria alternativet

WebResponse och CustomErrors m.m.

.NETur .NET

0 svar · 365 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

Rätta mig om jag har fel.

Jag vill kontrollera om en url finns, dvs att den inte för tillfället returnerar en 404 eller en 500. Dvs ett protokollfel. Använder denna kodsnutt som funkar bra.

		' Adressen som skall kontrolleras bör vara en valid url först.
		' Skapar en HttpWebRequest med en specificerad url.
		Dim httpWebRequest As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
		httpWebRequest.AllowAutoRedirect = False

		Try
			Dim httpWebResponse As HttpWebResponse = CType(httpWebRequest.GetResponse(), HttpWebResponse)

			Return Convert.ToInt32(httpWebResponse.StatusCode).ToString
		Catch ex As WebException
			Return ex.Message.ToString
		End Try

Den returnerar 200 på sidor som finns, och på sidor som inte skall finnas ex. http://www.kjjk.se/aaa.asp resp. http://www.kjjk.se/test.aspx

Dessa två ger då: 404 resp. 500 precis som de skall göra.

Men försöker jag med en sida som egentligen inte existerar som ex.

http://www.adlibris.com/aa.aspx , så får jag ju inte en 404, även fast det egentligen är en 404 eftersom den sidan inte finns, utan jag får en 302. Alltså en redirect. Detta sker givetvis då på samtliga sidor som är av karaktären redirect, t ex. http://www.adlibris.com/ ger också en 302.

Beror detta på att ASP.NET motorn fångar upp responsen innan den skickas till klienten och gör en modifikation av responskoden, och gör en redirect till en customerror page, och där med blir responskoden en 302.

132 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)