gpt4 book ai didi

c - 如何使用糟糕的Windows套接字在https GET请求中发送包含unicode字符的cookie

转载 作者:行者123 更新时间:2023-11-30 16:16:03 25 4
gpt4 key购买 nike

我正在创建 win32 应用程序,并且使用一个特定的站点。从之前的请求中,我提取了一些 cookie,我想实现它们。但问题是,其中一个 cookie 包含 unicode 字母(拉丁文小写字母 e,上面带点;ASCII 表中为 279)。它是唯一经过 url 编码的 cookie。解码时,我得到 char\u0117 并且 Visual Studio 编译器警告我它是 unicode char 并将其视为 ?标记。

这是 url 编码的 cookie:

Set-Cookie: logged_user=%7B%22id%22%3A%22625936%22%2C%22email%22%3A%22vytautas.leveris%40gmail.com%22%2C%22display_name%22%3A%22Vytautas+L%5Cu0117veris%22%2C%22full_name%22%3A%22Vytautas+L%5Cu0117veris%22%2C%22photo%22%3A%22https%3A%5C%2F%5C%2Fwww.15min.lt%5C%2Fassets%5C%2Fimages%5C%2Fuser-default-icon.png%22%2C%22photo_small%22%3A%22https%3A%5C%2F%5C%2Fwww.15min.lt%5C%2Fassets%5C%2Fimages%5C%2Fuser-default-icon.png%22%2C%22photo_normal%22%3A%22https%3A%5C%2F%5C%2Fwww.15min.lt%5C%2Fassets%5C%2Fimages%5C%2Fuser-default-icon.png%22%2C%22staff%22%3Afalse%2C%22bookmarks%22%3A2%2C%22nb%22%3A1%7D; path=/

这是经过 url 解码的 cookie:

Set-Cookie: logged_user={\"id\":\"625936\",\"email\":\"vytautas.leveris@gmail.com\",\"display_name\":\"Vytautas L\u0117veris\",\"full_name\":\"Vytautas L\u0117veris\",\"photo\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_small\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_normal\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"staff\":false,\"bookmarks\":2,\"nb\":1}; path=/

最后,所有 http GET 请求:

strcpy(request,"GET / HTTP/1.1\r\nHost: www.15min.lt\r\nCookie: PHPSESSID=652e6dd2ac78de5db5392e53b9a0355a; logged_user={\"id\":\"625936\",\"email\":\"vytautas.leveris@gmail.com\",\"display_name\":\"Vytautas L\u0117veris\",\"full_name\":\"Vytautas L\u0117veris\",\"photo\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_small\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"photo_normal\":\"https:\/\/www.15min.lt\/assets\/images\/user-default-icon.png\",\"staff\":false,\"bookmarks\":2,\"nb\":1}; remember_me=625936; device_token_625936=84c45e719fedc5949ced93ca0df54152\r\nUser-Agent: WindowsSockets2\r\n\r\n");

当我通过winsock发送消息时,我使用char类型。

我需要将所有内容都转换为 wchar_t* 吗?那么将 wchar_t* 发送到服务器呢?或者也许我可以将此字符表示\u0117 更改为 UTF8 字符序列?欢迎任何帮助和评论。

最佳答案

我建议将数据视为不透明的字节序列,即将自定义数据转换为 UTF-8 字节,运行 base 64 并将其用作 cookie 值。另请参阅:https://stackoverflow.com/a/49205256/696632 。然后在接收端进行相反的操作。您可能需要 unsigned char* 作为不透明字节数据。

关于c - 如何使用糟糕的Windows套接字在https GET请求中发送包含unicode字符的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56842527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com