سؤال

سأصل إلى هذه النقطة.

  • هذا ما يبدو عليه طلب المتصفح

    get /index.html http /1.1

  • هذا ما يفعله winhttp

    احصل على http://site.com/index.html http/1.1

هل هناك أي شيء يمكنني الحصول على طلب winhttp ليكون نفس التنسيق مثل التنسيق العادي؟ أنا أستخدم VC ++ 2008 إذا كان يحدث أي فرق

هل كانت مفيدة؟

المحلول

يجب أن يبدو الرمز الخاص بك هكذا:

// Specify an HTTP server.
if (hSession)
    hConnect = WinHttpConnect( hSession, L"www.example.com",
                               INTERNET_DEFAULT_HTTP_PORT, 0);

// Create an HTTP request handle.
if (hConnect)
    hRequest = WinHttpOpenRequest( hConnect, L"GET", L"/path/resource.html",
                                   NULL, WINHTTP_NO_REFERER, 
                                   WINHTTP_DEFAULT_ACCEPT_TYPES, 
                                   WINHTTP_FLAG_SECURE);

// Send a request.
if (hRequest)
    bResults = WinHttpSendRequest( hRequest,
                                   WINHTTP_NO_ADDITIONAL_HEADERS,
                                   0, WINHTTP_NO_REQUEST_DATA, 0, 
                                   0, 0);

هل يمكنك نشر هذه المكالمات الثلاثة من الكود الخاص بك؟

لاحظ أن عنوان URL الكامل يتم تقسيمه إلى قسمين - يتم تحديد اسم المضيف في WinHttpConnect المكالمة ، ولكن تم تحديد مسار الموارد النسبي في WinHttpOpenRequest استدعاء (مثل pwszObjectName معامل). بناءً على تعليقك ، يبدو أنك تحدد عنوان URL الكامل في WinHttpConnect يتصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top