Pregunta

voy a ir directo al punto.

  • Esto es lo que a petición del navegador se parece a

    GET /index.html HTTP / 1.1

  • Esto es lo que hace winhttp

    http://site.com/index.html HTTP / 1.1

¿Hay alguna que puedo conseguir la solicitud winhttp ser el mismo formato que el regular? Estoy usando VC ++ 2008 si hace alguna diferencia

¿Fue útil?

Solución

El código debería tener este aspecto:

// 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);

Se puede publicar estos tres llamadas desde su código?

Tenga en cuenta que la dirección URL completa se divide en dos - el nombre de host se especifica en la llamada WinHttpConnect, pero la ruta del recurso relativa se especifica en la llamada WinHttpOpenRequest (como el parámetro pwszObjectName). Basado en su comentario, parece que está especificando la dirección URL completa en la llamada WinHttpConnect.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top