【问题标题】:Wininet not sending cookie to serverWininet 不向服务器发送 cookie
【发布时间】:2014-03-18 15:30:16
【问题描述】:

我的应用程序中有以下代码。 在 HttpSendRequest() 中,我放置了一个包含一些选项的标头字符串,但是 cookie 部分被删除了。

如何通过 wininet 避免这种行为。 ?

char *get_data_from_url_new(gchar *data_url)
{
    char Agent[128] = {0};
    char ServerName[128] = {0};
    char Verb[128] = {0};
    char ObjectName[128] = {0};
    char Optional[128] = {0};
    int OptionalLength = 0;
    char Headers[128] = {0};
    int HeadersLength = 0;
    HINTERNET InetOpen;
    HINTERNET InetConnect;
    HINTERNET HtOpenRequest;
    DWORD flags = 0;

    if (!InternetGetConnectedState(&flags, 0)) {
        return "0";
    }

    sprintf(Agent, "%s", "myagent");
    InetOpen = InternetOpen(Agent, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
    if (InetOpen == NULL) {
        return "0";
    }

    sprintf(ServerName, "%s", "192.168.2.150");
    InetConnect = InternetConnect(InetOpen, ServerName, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    if (InetConnect == NULL) {
        return "0";
    }

    sprintf(Verb, "%s", "POST");
    sprintf(ObjectName, "%s", "cgi-bin/icetea?ifr=101");
    HtOpenRequest = HttpOpenRequest(InetConnect, Verb, ObjectName, NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0);
    if (HtOpenRequest == NULL) {
        return "0";
    }

    sprintf(Headers, "%s", "Connection: keep-alive\r\nCookie: username=johndoe\r\nContent-Type: application/x-www-form-urlencoded");
    HeadersLength = strlen(Headers);
    sprintf(Optional, "%s", "Some FORM data in pairs");
    OptionalLength = strlen(Optional);

    HttpSendRequest(HtOpenRequest, Headers, HeadersLength, Optional, OptionalLength);

    InternetCloseHandle(InetOpen);
    InternetCloseHandle(InetConnect);
    InternetCloseHandle(HtOpenRequest); 

    return "0";
}

【问题讨论】:

    标签: c cookies wininet mingw32


    【解决方案1】:

    尝试将INTERNET_FLAG_NO_COOKIES 标志添加到HttpOpenRequest 调用以禁用wininet 中的自动cookie 管理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 2022-07-22
      • 2015-06-30
      • 2020-04-08
      • 1970-01-01
      • 2018-12-23
      • 2016-10-15
      • 2018-06-11
      相关资源
      最近更新 更多