Cet article présente principalement la méthode de simulation de requête POST par ASP pour soumettre des données de manière asynchrone. Cet article utilise MSXML2.SERVERXMLHTTP.3.0 pour implémenter la requête POST. Les amis dans le besoin peuvent se référer à ce qui suit.
Parfois, il est nécessaire d'obtenir certaines informations à partir d'un site Web distant, et le serveur restreint la méthode GET et ne peut les soumettre que via les données POST. À l'heure actuelle, nous pouvons simuler la soumission de données de publication via asp. Il existe de nombreux exemples de ce type sur Internet. . Ce qui suit est une fonction relativement concise et facile à comprendre que j'ai moi-même écrite.
Tout d'abord, une fonction de paramétrage de l'encodage est nécessaire, car asp est généralement gbk et la plupart des sites Web standard utilisent désormais utf-8. Une conversion est donc nécessaire.
Copiez le code comme suit :
fonction BytesToBstr (corps, Cset)
objstream obscur
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Ouvrir
objstream.Écrire le corps
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Fermer
définir objstream = rien
Fin de fonction
La deuxième étape consiste à utiliser des composants pour soumettre des données de publication. J'ai utilisé MSXML2.SERVERXMLHTTP.3.0 ici. Bien entendu, d’autres peuvent également être utilisés.
Copiez le code comme suit :
fonction PostHTTPPage(url,données)
dimHttp
set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
Http.open "POST",url,false
Http.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
Http.envoyer (données)
si Http.readystate<>4 alors
fonction de sortie
Terminer si
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
définir http = rien
si err.number<>0 alors err.Clear
Fin de fonction
Voici comment cela fonctionne :
Copiez le code comme suit :
PostHTTPPage("www.vevb.com","str1=a&str2=b&str3=c")