Jag ska länka in en extern sida i min asp-sida och har följande fundering:
Kan man kolla med en kodsnutt om den extrena sidan verkligen finns?
Min tanke var att använda xmlhttp men det kanske går på nått annat sätt också, eller?
Jag behöver typ följande, fast fungerande:
<%
Dim objHTTP, framePage
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.open "GET", "http://www.webforum.nu/default.asp", False
If isOpen(objHTTP) Then
framePage = "http://www.webforum.nu/default.asp"
Else
framePage = "/error.asp"
End If
Set objHTTP = Nothing
%>
<frameset rows="*" cols="200,*" framespacing="0" frameborder="no" border="0">
<frame src="/menu.asp" name="menu" frameborder="no" noresize marginwidth="0" marginheight="0" id="menu">
<frame src="<%= framePage %>" name="content" frameborder="no" noresize marginwidth="0" marginheight="0" id="content">
</frameset>
yohpopsMedlem sedan feb. 20011 198 inlägg Du kan kolla objHTTP.status eller vad propertien nu heter och om du får 404 så finns inte sidan.
Men du måste göra en objHTTP.send också.
Du kan ju kolla om propertyn .status är 404. Funkar dock inte om domänen inte finns.
.status verkar ju funka :)
men vad skulle hända om servern ligger tillfälligt nere? funkar status 404 då eller?
yohpopsMedlem sedan feb. 20011 198 inlägg Nej då får du fel, err.number = -2146697211
Så här skulle man kunna skriva:
Dim objHTTP, sUrl, lError
sUrl = "http://www.fdkjsdlfsdjfks.com/"
On Error Resume Next
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", sUrl, False
objHTTP.setRequestHeader "Content-type", "text/html"
objHTTP.send
If Err.Number Then
lError = Err.Number
ElseIf objHTTP.Status <> 200 Then
lError = objHTTP.Status
End If
Set objHTTP = Nothing
On Error GoTo 1
If lError Then
Response.Write "Fel!"
Else
Response.Write "Funka!"
End If
Visst sjutton kan man det! :bire
OBS! Förutom raden: On Error GoTo 1 som inte går med vb-script!
Ah, Är det GoTo 0 det heter?
Gjorde koden i VB och översatte sen...
Erik Juhlin skrev:
Ah, Är det GoTo 0 det heter?
Själv använder jag sällan error-objektet så jag är lite osäker på hur det kan användas.
Men svar ja: GoTo 0 kan man skriva! :)
Koden är inte helt stabil, funkar inte på följande punkter:
1. På en .nu adress så får man en redirect till nunames om domänen inte finns.
2. Stoppar man domänen i iis:en så får man en redirect till att sidan är under uppbyggnad.
Eftersom man får redirects så tror koden att domänen finns. :(
SannyWMedlem sedan jan. 2003438 inlägg Nu är man i farten och försöker lägga till en följdfråga på en gammal tråd, vi får väl se hur det går :)
Jo, om jag förstår det hela rätt så kollar man av om felsidan laddas.
Har två frågor:
-
Går det att tidsbestämma hur långtid laddningen får lov att ta?
-
Går det att undersöka koden som man hämtar så att man kan gardera sig mot t ex databas fel på sidan man hämtar informationen från? Typ när en databas är upptagen för nedladdning eller bara upptagen.
Hoppas det går att förstå vad jag menar, tack på förhand.
yohpopsMedlem sedan feb. 20011 198 inlägg Om du använder serverxmlhttp istället för xmlhttp så kan du använda setTimeouts.
setTimeouts resolveTimeout,connectTimeout,sendTimeout,receiveTimeout
För att kolla koden använder du responseBody,Stream,Text,XML