Pergunta

Eu vou direto ao ponto.

  • É assim que uma solicitação de navegador se parece

    Get /index.html http /1.1

  • É isso que o winehttp faz

    PEGUE http://site.com/index.html Http/1.1

Existe algum que eu possa obter a solicitação WINHTTP para ser o mesmo formato que o regular? Estou usando o VC ++ 2008 se fizer alguma diferença

Foi útil?

Solução

Seu código deve ficar assim:

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

Você pode postar essas três chamadas do seu código?

Observe que o URL completo é dividido em dois - o nome do host é especificado no WinHttpConnect ligue, mas o caminho de recurso relativo é especificado no WinHttpOpenRequest ligue (como o pwszObjectName parâmetro). Com base no seu comentário, parece que você está especificando o URL completo no WinHttpConnect ligar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top