تقدم هذه المقالة بشكل أساسي طريقة محاكاة ASP لطلب POST لإرسال البيانات بشكل غير متزامن. تستخدم هذه المقالة MSXML2.SERVERXMLHTTP.3.0 لتنفيذ طلب POST. يمكن للأصدقاء المحتاجين الرجوع إلى ما يلي
في بعض الأحيان يكون من الضروري الحصول على معلومات معينة من موقع ويب بعيد، ويقيد الخادم طريقة GET ولا يمكنه إرسالها إلا من خلال بيانات POST. في الوقت الحالي، يمكننا محاكاة إرسال بيانات النشر من خلال asp. وهناك العديد من هذه الأمثلة على الإنترنت . فيما يلي وظيفة موجزة وسهلة الفهم كتبتها بنفسي.
بادئ ذي بدء، هناك حاجة إلى وظيفة لإعداد التشفير، لأن asp بشكل عام هو gbk، ومعظم مواقع الويب القياسية تستخدم الآن utf-8. لذلك هناك حاجة إلى التحويل.
انسخ رمز الكود كما يلي:
الدالة BytesToBstr(body,Cset)
objstream خافت
تعيين objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
وظيفة النهاية
الخطوة الثانية هي استخدام المكونات لإرسال بيانات النشر التي استخدمتها هنا MSXML2.SERVERXMLHTTP.3.0. بالطبع يمكن أيضًا استخدام الآخرين.
انسخ رمز الكود كما يلي:
وظيفة PostHTTPPage(url,data)
dimHttp
تعيين Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
Http.open "POST"، عنوان URL، خطأ
Http.setRequestHeader "نوع المحتوى"، "application/x-www-form-urlencoded"
http.send (البيانات)
إذا Http.readystate<>4 ثم
وظيفة الخروج
انتهي إذا
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
تعيين http=لا شيء
إذا كان err.number<>0 ثم err.Clear
وظيفة النهاية
هذه هي الطريقة التي تعمل بها:
انسخ رمز الكود كما يلي:
PostHTTPPage("www.vevb.com"،"str1=a&str2=b&str3=c")