gpt4 book ai didi

c - WinHttpSendRequest 返回 ERROR_INVALID_PARAMETER

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:03 25 4
gpt4 key购买 nike

我正在尝试获取 betfair API使用 Windows API。

我无法尝试使用以下代码登录(用户名和密码已更改)。

char *headers = "X-Application: MakJhSABCDq8sbPIr\r\nAccept: application/json";

char *usernameandpassword = "username=mick&password=xyz123";

WinHttpSendRequest(
hrequest,
(LPCWSTR)headers,
-1,
usernameandpassword,
strlen(usernameandpassword),
strlen(usernameandpassword),
0);

但调用返回值 ERROR_INVALID_PARAMETER。但我不知道哪个参数不好。

最佳答案

LPCWSTR 作为 const wchar_t* 的类型定义。在 Windows 上,它使用 UTF-16 编码。基本上,您将 8 位 ASCII 字符串(headers)类型转换为 16 位宽的字符串,并告诉 WinHttpSendRequest() 计算字符串长度,但由于它是不是有效的宽字符串。

解决这个问题的方法是首先使用适当的宽字符串:

const wchar_t *headers = L"X-Application: MakJhSABCDq8sbPIr\r\nAccept: application/json";

无论如何,用char* 指向字符串文字是错误的,因为字符串文字是不可修改的,修改它们是未定义的行为。它应该始终是 const

关于c - WinHttpSendRequest 返回 ERROR_INVALID_PARAMETER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39081237/

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