连接到InternetSetOption服务时,使用username设置passwordREST。我注意到即使我先调用InternetSetOption,当我调用WinInetHttpSentRequest也不会发送Authorization header 。似乎荒谬的是,您必须首先从服务器获得带有WWW-Authentication header 的响应。这会在每个请求上向服务器创建一个完整的额外请求。

是否有一个WinInet调用在第一次调用时强制使用Authorization header ,还是我必须手动添加它?

最佳答案

在HttpSendRequestW之前调用函数InternetSetOptionW。例如:

InternetSetOptionW( hRequest, INTERNET_OPTION_USERNAME, (void*) pwszAuthUserName, wcslen( pwszAuthUserName ) + 1 );
InternetSetOptionW( hRequest, INTERNET_OPTION_PASSWORD, (void*) pwszAuthPassword, wcslen( pwszAuthPassword ) + 1 );
HttpSendRequestW( hRequest, 0, -1, 0, 0 );

10-02 06:48