Avatar billede websam Nybegynder
14. januar 2004 - 10:08 Der er 19 kommentarer og
2 løsninger

Post vs Get ?

Jeg bruger følgende til at poste data til en extern server men på den externe maskine modtages det som en get og det må ikke ske hvad gør jeg forkert :

Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "POST", "https://website.com/Site.php", False
objXML.Send

Eller er den en anden måde at løse det på uden brug af en formular ?

/Websam
Avatar billede nute Nybegynder
14. januar 2004 - 10:44 #1
hmm ... hvad nu om du bruger "GET" metoden istedenfor "POST" ?

Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "GET", "https://website.com/Site.php", False
objXML.Send

måske ?

/nute
Avatar billede nute Nybegynder
14. januar 2004 - 10:45 #2
Avatar billede websam Nybegynder
14. januar 2004 - 10:56 #3
Har prøvet begge dele or uaset hvad så modtages den som en get og det må den ikke da der bliver sendt følsomme data med
Avatar billede nute Nybegynder
14. januar 2004 - 11:37 #4
Jeg har siddet og kigget lidt på dette, og det kan se ud til at du er nødt til at poste noget data for at det skal virke som en POST ... iallefald efter hvad jeg har fattet :-|

Jeg lavet to sider test.asp og test2.asp

**********
test.asp
**********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<%
strRequest = "x"
Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "POST", "[STI TIL test2asp]/test2.asp", False
objXML.Send strRequest
%>
<textarea cols="100" rows="10"><%= objXML.responseText %></textarea>
</body>
</html>

**********
test2.asp
**********
<%
Response.Write( "<root><method>" & Request.ServerVariables ("REQUEST_METHOD") & "</method></root>" )
%>

du kan prøve et par ting:

- Set 'strRequest' til "" med POST ... dette vil give GET som respons fra test2.asp
- Set 'strRequest' til "x" med POST ... dette vil give POST som respons fra test2.asp

any help ?

/nute
Avatar billede websam Nybegynder
14. januar 2004 - 12:21 #5
Ok den kan jeg godt følge dig i men når jeg så skriver noget i denne stil :

?Id=100&Sid=200

går den ud i fejl uden beskrivelse af hvad fejlen er :o( Og jeg er helle ikke sikekr på om jeg overhovedet kan gøre dette !?!
Avatar billede nute Nybegynder
14. januar 2004 - 12:42 #6
du skal ikke have dit ? med:

strRequest = "Id=100&Sid=200"

/nute
Avatar billede websam Nybegynder
14. januar 2004 - 12:48 #7
Jeg modtager denne kedelige fejl besked :

Error Type:
(0x800C0008)
/test1.asp, line 51

det er denne linie :

objXML.Send strRequest

Min fulde kode ser således ud :

strRequest = "id=100&sid=200"
'Response.Write strResponse
'Response.End

Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "Post", "https://secure.site.com/test.php", False
objXML.Send strRequest

strResponse = objXML.ResponseText

Response.Write strResponse
Avatar billede nute Nybegynder
14. januar 2004 - 12:51 #8
og det er ingen problemer hvis du setter

strRequest = ""

?
Avatar billede websam Nybegynder
14. januar 2004 - 12:55 #9
Ja så er der ingen problemer så loader den men klart uden resultat :o)
Avatar billede nute Nybegynder
14. januar 2004 - 13:10 #10
hmm ... mon ikke det har noget med at du prøver at poste over HTTPS ??

fordi det fungerer fint når jeg tester over HTTP ...

Problemet kan se ut til at du ikke bare kan springe fra et certificat over til et andet under en transaction. Dessuden ser det ud til at det er et "problem" i MSXML3:

"The ServerXMLHTTP and XMLHTTP components have limited HTTPS support in MSXML3. Specifically, they do not fully support Secure Sockets Layer (SSL) certificates, which are used for authentication. The components do support the HTTPS protocol, but the request fails if the server requires a client certificate.

ServerXMLHTTP includes SSL certificate support in MSXML 3.0 Service Pack 1.
"
(http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q290/7/61.ASP&NoWebContent=1 punkt 7)

Du er nødt til at have minimum MSXML3 SP1 for at der skal være begrænset understøttelse for SSL.

MEN !!! Du er også nødt til at kalde din "https" side *fra* en SSL side ... ellers vil det nok ikke fungere. Dette er "functionallity by design" fra MS sin side:

http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b304420

/nute
Avatar billede websam Nybegynder
14. januar 2004 - 13:49 #11
Ok så langt så godt og hvis jeg nu vil vise hvad jeg poster med på almindelig http hvordan gør jeg så dette ?
Avatar billede websam Nybegynder
14. januar 2004 - 14:02 #12
Forstået på den måde at jeg gerne vil have vist outputtet af det jeg sender med ?

Jeg skal hilse og sie at jeg ikke længere får fejl men at det heller ikke ser ud som om der kommer nogle variabler med over når jeg poster dem !?!
Avatar billede nute Nybegynder
14. januar 2004 - 14:19 #13
du vil vise outputet du får tilbage fra din SSL side ?
Avatar billede websam Nybegynder
14. januar 2004 - 14:36 #14
Nej jeg vil bare vise værdierne fra Id=100 og Sid=200 for jeg tror ikke de bliver sendt med endnu
Avatar billede nute Nybegynder
14. januar 2004 - 14:40 #15
hmm ... jeg regner med at du vil få dem vist på din side der ligger på din "SSL maskine" ? kan du ikke bare bruge

Request( "Id" ) og Request( "Sid" )

?

ellers forstår jeg ikke hvad du mener
Avatar billede websam Nybegynder
14. januar 2004 - 14:53 #16
Jo det har jeg prøvet men den viser ikke noget hvis du kigger på det du skrev tidligere :

Jeg har siddet og kigget lidt på dette, og det kan se ud til at du er nødt til at poste noget data for at det skal virke som en POST ... iallefald efter hvad jeg har fattet :-|

Jeg lavet to sider test.asp og test2.asp

**********
test.asp
**********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<%
strRequest = "x"
Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "POST", "[STI TIL test2asp]/test2.asp", False
objXML.Send strRequest
%>
<textarea cols="100" rows="10"><%= objXML.responseText %></textarea>
</body>
</html>

**********
test2.asp
**********
<%
Response.Write( "<root><method>" & Request.ServerVariables ("REQUEST_METHOD") & "</method></root>" )
%>

du kan prøve et par ting:

- Set 'strRequest' til "" med POST ... dette vil give GET som respons fra test2.asp
- Set 'strRequest' til "x" med POST ... dette vil give POST som respons fra test2.asp

any help ?

Hvordan vil du vise strRequest ud fra dette ???
Avatar billede nute Nybegynder
14. januar 2004 - 15:10 #17
hmm ... hvis du nu prøver med at lægge parametre på selve URL'en:

Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "POST", "[STI TIL test2.asp]/test2.asp?Id=100&Sid=200", False
objXML.Send

så vil du kunne hente ud querystringen med:

Request.ServerVariables( "QUERY_STRING" )
Avatar billede websam Nybegynder
14. januar 2004 - 15:16 #18
Ja og når jeg ligger dem på url'en bliver det til en get og så har vi problemet med at det skal sendes som en post :o(
Avatar billede nute Nybegynder
14. januar 2004 - 15:22 #19
jeg har ikke noget problem med at sende det som en post når jeg lægger dem på min URL. hvad hvis du kombinerer de sidste løsninger ?

strRequest = "x"
Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "POST", "[STI TIL test2.asp]/test2.asp?Id=100&Sid=200", False
objXML.Send strRequest

/nute
Avatar billede websam Nybegynder
15. januar 2004 - 10:19 #20
Nej det har jeg heller ikke men så bliver det ikke sendt som en POST men som en GET og det duer ikke :o( Men vi stopper den her jeg har valgt at bruge cUrl.exe til at klare denne lille opgave, Smid et svar så får du lidt point for din hjælp :o)
Avatar billede nute Nybegynder
15. januar 2004 - 10:25 #21
det lyder til at vi får to forskellige resultat på våre forsøg ... underlig :-| jeg får den til at blive POST når jeg poster og GET når jeg getter ... skummelt ...
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