استخدم WinHttpRequest لتزوير معلومات رأس HTTP وتزوير المُحيل والمعلومات الأخرى. نظرًا لأن Microsoft قامت بحظر كائن XmlHttp، لا يمكن تزوير بعض معلومات رأس HTTP، ولكن يمكن لكائن WinHttp.WinHttpRequest.5.1 أن يقوم بالفعل بتزوير معلومات الرأس لجميع طلبات http بنجاح!
لقد تعلمنا من msdn أن WinHttp.WinHttpRequest.5.1 هو الكائن الأساسي لـ msxml 4.0، مما يعني أن XMLHTTP/ServerXMLHTTP مغلف أيضًا على أساسه. إن استخدام WinHttpRequest هو تقريبًا نفس استخدام XmlHttp.
WaitForResponse عند إرسال طلب بطريقة غير متزامنة، يمكنك استخدام هذه الطريقة للتحكم في عملية الطلب. وقت الانتظار المحدد، بالثواني، هو القيمة التي يجب إكمالها بواسطة طريقة إرسال غير متزامنة، SetTimeouts.
في البرامج النصية من جانب الخادم، لا يمكنك استخدام وظائف رد الاتصال مباشرة للتحكم في الطلبات غير المتزامنة كما يفعل العميل، ولا توجد وظيفة مقابلة لاستخدام البرنامج في وضع السكون لفترة زمنية معينة، لذلك من أجل انتظار الطلب العودة، يمكننا استخدام هذه الطريقة للانتظار لفترة معينة من الزمن.
انسخ رمز الكود كما يلي:
<%
DimWinHttp
تعيين WinHttp = Server.CreateObject(WinHttp.WinHttpRequest.5.1)
"تعيين المعلمات."
WinHttp.SetTimeouts 60000، 60000، 60000، 3000 'ضبط مهلة العملية
'WinHttp.SetTimeouts ResolveTimeout، وconnectTimeout، وsendTimeout، وreceiveTimeout
'resolveTimeout = 10000 'مهلة حل أسماء DNS، 10000 مللي ثانية.
'connectTimeout = 10000 'مهلة إنشاء اتصال Winsock، 10000 مللي ثانية.
'sendTimeout = 120000 'مهلة إرسال البيانات، 120000 مللي ثانية.
'receiveTimeout = 60000 'مهلة تلقي الاستجابة، 60000 مللي ثانية.
WinHttp.Option(4) = 13056 'تجاهل إشارة الخطأ
WinHttp.Option(6) = False 'عندما يكون صحيحًا، فإنه سينتقل تلقائيًا عند إعادة توجيه الصفحة المطلوبة ولن يقفز False تلقائيًا ويعترض حالة 302 التي أرجعها الخادم.
WinHttp.Open GET، http://www.baidu.com/، False 'GET أو POST، Url، الوضع المتزامن الخاطئ؛
"إنشاء معلومات رأس HTTP."
WinHttp.SetRequestHeader قبول، */* 'قبول نوع البيانات
WinHttp.SetRequestHeader Accept-Language, zh-cn,zh 'لغة نظام المستخدم
WinHttp.SetRequestHeader وكيل المستخدم، Mozilla/6.0 'معلومات متصفح المستخدم
WinHttp.SetRequestHeader نوع المحتوى، التطبيق/x-www-form-urlencoded 'طريقة التشفير
WinHttp.SetRequestHeader المُحيل، http://www.baidu.com/ 'المصدر
WinHttp.SetRequestHeader Connection، Close 'Close = لا تحتفظ بالاتصال، Keep-Alive = احتفظ بالاتصال (اتصال مستمر)
'WinHttp.SetRequestHeader قبول التشفير، gzip، تفريغ' إذا تم إرسال gzip، سيتم إرجاع التشفير المضغوط
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'طول المحتوى، المستخدم في طريقة النشر.
WinHttp.SetRequestHeader Cookie، اختبار ملف تعريف الارتباط 'Set Cookie
"أرسل البيانات."
WinHttp.Send 'طريقة النشر: WinHttp.Send (معلمة)
WinHttp.WaitForResponse 'انتظر طلب الإرجاع، ويمكن استخدامه أيضًا في XMLHTTP
""نتائج الإخراج""
Response.Write WinHttp.Status 'حالة HTTP الحالية
"Response.Write WinHttp.ResponseText" البيانات النصية
Response.BinaryWrite WinHttp.ResponseBody 'بيانات دفق البيانات الثنائية
%>
الخيار () المتعلق:
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5; '13056 = تجاهل إشارات الخطأ
WinHttpRequestOption_EnableRedirects = 6; 'عندما يكون صحيحًا، عندما يكون هناك انتقال في الصفحة المطلوبة، فإن الحصول على معلومات صفحة الانتقال لن يحصل عليه خطأ.
WinHttpRequestOption_UrlEscapeDisable = 7;
WinHttpRequestOption_UrlEscapeDisableQuery = 8;
WinHttpRequestOption_SecureProtocols = 9;
WinHttpRequestOption_EnableTracing = 10;
WinHttpRequestOption_RevertImpersonationOverSsl = 11;
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12;
WinHttpRequestOption_EnablePassportAuthentication = 13;
WinHttpRequestOption_MaxAutomaticRedirects = 14;
WinHttpRequestOption_MaxResponseHeaderSize = 15;
WinHttpRequestOption_MaxResponseDrainSize = 16;
WinHttpRequestOption_EnableHttp1_1 = 17;
WinHttpRequestOption_EnableCertificateRevocationCheck = 18;
وصف الطريقة
إحباط إحباط أسلوب إرسال WinHTTP.
يقوم GetAllResponseHeaders باسترداد جميع رؤوس استجابة HTTP.
يقوم GetResponseHeader باسترداد رؤوس استجابة HTTP.
فتح يفتح اتصال HTTP بمورد HTTP.
إرسال يرسل طلب HTTP إلى خادم HTTP.
يقوم SetAutoLogonPolicy بتعيين سياسة تسجيل الدخول التلقائي الحالية.
SetClientCertificate يحدد شهادة عميل لإرسالها إلى خادم بروتوكول نقل النص التشعبي الآمن (HTTPS).
SetCredentials يضبط بيانات الاعتماد التي سيتم استخدامها مع خادم HTTP، سواء كان الخادم الأصلي أو الخادم الوكيل.
يقوم SetProxy بتعيين معلومات الخادم الوكيل.
SetRequestHeader يضيف أو يغير أو يزيل رأس طلب HTTP.
تحدد SetTimeouts، بالمللي ثانية، الوقت المنقضي الفردي لعملية إرسال/تلقي المكون.
WaitForResponse يحدد وقت الانتظار، بالثواني، لأسلوب النقل غير المتزامن لإكمال قيمة، SetTimeouts.
يحدد كائن WinHttpRequest الخصائص التالية.
وصف نوع الوصول إلى الخاصية
يقوم خيار القراءة/الكتابة بتعيين أو استرداد قيمة خيار WinHTTP.
ResponseBody للقراءة فقط يسترد نص كيان الاستجابة كمصفوفة بايت غير موقعة.
ResponseStream للقراءة فقط استرداد IStream ككيان الاستجابة.
نص الاستجابة يُقرأ فقط كنص تم استرداده من نص كيان الاستجابة.
رمز حالة HTTP للقراءة فقط للحالة من آخر مرة تم فيها استرداد الاستجابة.
تحصل قراءة StatusText فقط على نص حالة HTTP.
الأحداث
يحدد كائن WinHttpRequest الأحداث التالية.
يتم تعريف الأحداث التالية بواسطة كائن WinHttpRequest.
وصف الحدث الحدث
يحدث OnError عندما يكون هناك خطأ في وقت التشغيل في التطبيق.
يحدث عند حدوث خطأ في وقت تشغيل التطبيق.
OnResponseDataAvailable يحدث عندما تكون البيانات متاحة من الاستجابة.
يحدث عندما تكون بيانات الاستجابة متاحة.
OnResponseFinished يحدث عند اكتمال بيانات الاستجابة.
يحدث عند اكتمال بيانات الاستجابة.
يحدث OnResponseStart عندما يبدأ تلقي بيانات الاستجابة.
يحدث عندما يبدأ تلقي بيانات الاستجابة.
ملاحظات
يستخدم كائن WinHttpRequest واجهة IErrorInfo لتوفير بيانات الخطأ.
يستخدم كائن WinHttpRequest واجهة IErrorInfo لتوفير بيانات الخطأ.
يمكن الحصول على وصف وقيمة خطأ رقمية باستخدام كائن Err في Microsoft Visual Basic Scripting Edition (VBScript)،
وكائن الخطأ في Microsoft JScript.
تتوافق البتات الـ 16 السفلية من رقم الخطأ مع القيم الموجودة في رسائل الخطأ.
ملاحظة بالنسبة لنظامي التشغيل Windows XP وWindows 2000، راجع متطلبات وقت التشغيل.
ملاحظة: بالنسبة لنظامي التشغيل Windows XP وWindows 2000، راجع متطلبات وقت التشغيل.
متطلبات
الحد الأدنى من العملاء المعتمدين Windows XP وWindows 2000 Professional المزود بحزمة الخدمة SP3 Windows XP
الحد الأدنى من الخادم المدعوم Windows Server 2003، Windows 2000 Server المزود بحزمة الخدمة SP3
قابل لإعادة التوزيع لـ WinHTTP 5.0 وInternet Explorer 5.01 أو الأحدث على نظامي التشغيل Windows XP وWindows 2000.
WinHTTP 5.0 وInternet Explorer 5.01 أو أعلى لنظامي التشغيل Windows XP وWindows 2000.
IDL HttpRequest.idl HttpRequest.idl
مكتبة Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll