Avatar billede babyworm Nybegynder
07. november 2007 - 17:11 Der er 10 kommentarer

Problemer med post til side

Hej med jer,

Jeg har et system hvor jeg skal poste en masse informationer til en side, og så modtage svar fra dem. De udskriver svaret, så jeg benytter mig af følgende funktion:

Function postURL(varURL)

    Dim objXMLHTTP, xml

    Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

    xml.Open "POST", varURL, False
    xml.setRequestHeader "content-type","text/html"
    xml.send

    postURL = xml.responseText

    Set xml = Nothing

End Function

Mit problem er bare at hvis modtageren server ikke svarer, så fejler siden. Er der en måde hvorpå man kan sende/åbne den anden side og vente, hvis serveren ikke svarer, så returnerer funktionen bare noget ala "Serveren svarer ikke" og køre videre i scriptet?
Avatar billede w13 Novice
07. november 2007 - 17:17 #1
Du kan bruge en onreadystatechange, som du kan finde masser af info om vha. Google, eller du kan blot sætte zml.async=false.

Så venter den, til serveren er klar.
Avatar billede babyworm Nybegynder
07. november 2007 - 17:23 #2
Dvs:

Function postURL(varURL)

    Dim objXMLHTTP, xml

    Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

    xml.Open "POST", varURL, False
    zml.async=false
    xml.setRequestHeader "content-type","text/html"
    xml.send

    postURL = xml.responseText

    Set xml = Nothing

End Function
Avatar billede babyworm Nybegynder
07. november 2007 - 17:30 #3
hov..

Hjælper det at sætte xml.async = false ??
Er det ikke det samme der bliver gjort her:
xml.Open "POST", varURL, False <-- Hedder den ikke "open( method, URL, async) "
Avatar billede babyworm Nybegynder
07. november 2007 - 17:46 #4
<%
Function postURL(varURL)

    Dim objXMLHTTP, xml

    Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

    xml.Open "POST", varURL, false
    xml.setRequestHeader "content-type","text/html"
    xml.send

    postURL = xml.responseText

    Set xml = Nothing

End Function

Response.Write "før test - " & postURL("http://www.DomainNotExist.dk") & " - efter tekst"
%>

Følgende giver bare dette resultat:

msxml3.dll error '80072ee7'
The server name or address could not be resolved
/test/testpostrequest.asp, line 11

Den skulle gerne bare køre siden videre, uden at "melde" fejl, men resultatet af burde være:
"før test - The server name or address could not be resolved - efter tekst" eller noget i den stil
Avatar billede w13 Novice
07. november 2007 - 18:25 #5
Ja, tror du skal have fat i noget onreadystatechange.
Avatar billede babyworm Nybegynder
07. november 2007 - 18:31 #6
Hmm...  Jeg sad og læste om det, og kunne ikke helt få det til at passe ind.. Hvordan syntes du den skal være?

har løst det midlertidigt sådan her:

Function postURL(varURL)
    On Error Resume Next

    Dim objHTTP, sHTML
    Set objHTTP = Server.CreateObject ("Microsoft.XMLHTTP")

    objHTTP.open "POST", varURL, False
    objHTTP.setRequestHeader "content-type","text/html"
    objHTTP.send

    sHTML = objHTTP.statusText

    If Err Then
        postURL = objHTTP.statusText & ": " & err.description
    Else
        postURL = objHTTP.responseText
    End If

    Set objHTTP = Nothing
    Set sHTML = Nothing

End Function
Avatar billede w13 Novice
07. november 2007 - 18:36 #7
Altså jeg kan ikke huske 100%, hvordan man gør det i ASP. Det burde være noget á la:
------------------------------------
Function postURL(varURL)
    On Error Resume Next

    Dim objHTTP, sHTML
    Set objHTTP = Server.CreateObject ("Microsoft.XMLHTTP")

    objHTTP.onreadystatechange=Funktionen()

    objHTTP.open "POST", varURL, False
    objHTTP.setRequestHeader "content-type","text/html"
    objHTTP.send

    sHTML = objHTTP.statusText

    Function Funktionen()
      If objHTTP.readystate=4 And objHTTP.status=200 Then
        postURL = objHTTP.responseText
      Else
        postURL = objHTTP.statusText & ": " & err.description
      End If
    End Function

    Set objHTTP = Nothing
    Set sHTML = Nothing
End Function
---------------------------------------------
Men det skulle være utroligt, hvis det virkede :)
Avatar billede babyworm Nybegynder
07. november 2007 - 18:42 #8
;:;)
Avatar billede w13 Novice
29. juli 2008 - 09:35 #9
Kommet videre?
Avatar billede babyworm Nybegynder
10. december 2012 - 10:40 #10
Nææ.. Men giv et svar så får du point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester