W jaki sposób mogę utworzyć żądanie HTTP z danymi POST w klasycznym asp (nie .net)?Jak wykonać żądanie HTTP POST w ASP?
Odpowiedz
Można spróbować czegoś takiego:
Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.domain.com/page.asp"
ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
ServerXmlHttp.setRequestHeader "Content-Length", Len(PostData)
ServerXmlHttp.send PostData
If ServerXmlHttp.status = 200 Then
TextResponse = ServerXmlHttp.responseText
XMLResponse = ServerXmlHttp.responseXML
StreamResponse = ServerXmlHttp.responseStream
Else
' Handle missing response or other errors here
End If
Set ServerXmlHttp = Nothing
gdzie PostData jest dane chcesz opublikować (np pary nazwa-wartość, dokument XML lub cokolwiek).
Należy ustawić poprawną wersję pliku MSXML2.ServerXMLHTTP, aby pasowała do zainstalowanej wersji.
Otwarta metoda pobiera pięć argumentów, z których tylko dwie pierwsze są wymagane:
ServerXmlHttp.open Method, URL, Async, User, Password
- metoda: "GET" lub "POST"
- URL: URL chcesz opublikować
- asynchroniczny: domyślnie false (rozmowa nie wraca natychmiast) - wartość True dla asynchronicznego wywołania
- użytkownika: nazwa użytkownika wymaganych do uwierzytelnienia
- Hasło: hasło wymagane do uwierzytelnienia
Po powrocie połączenia właściwość statusu przechowuje stan HTTP. Wartość 200 oznacza OK - 404 oznacza, że nie znaleziono, 500 oznacza błąd serwera itp. (Patrz http://en.wikipedia.org/wiki/List_of_HTTP_status_codes dla innych wartości).
Możesz otrzymać odpowiedź jako tekst (właściwość responseText), XML (właściwość responseXML) lub strumień (właściwość responseStream).
Musisz użyć jednego z istniejących obiektów serwera xmlhttp bezpośrednio lub możesz skorzystać z biblioteki, która ułatwia życie poprzez abstrakcję rzeczy o niskim poziomie.
Sprawdź ajaxed implementation z pobierania adresu URL
Wada: Musisz skonfigurować bibliotekę w celu uczynienia go pracy. Nie jestem pewien, czy jest to konieczne dla twojego projektu.
"Musisz ustawić poprawną wersję pliku MSXML2.ServerXMLHTTP, aby pasowała do zainstalowanej wersji." lub po prostu użyj MSXML2.ServerXMLHTTP.3.0, który jest zawsze obecny na wszystkich platformach, które są obecnie obsługiwane. – AnthonyWJones