Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CAtlHttpClient-导航到IP6地址似乎不起作用_C++_Http_Atl_Ipv6 - Fatal编程技术网

C++ CAtlHttpClient-导航到IP6地址似乎不起作用

C++ CAtlHttpClient-导航到IP6地址似乎不起作用,c++,http,atl,ipv6,C++,Http,Atl,Ipv6,我正在使用ATL服务器CAtlHttpCLient向服务器发送HTTP请求 基本上,我的代码如下所示: ATL::CAtlHttpClient client; ATL::CAtlNavigateData navigateData; navigateData.SetSocketTimeout(60000); navigateData.SetMethod(ATL_HTTP_METHOD_POST); BX_TString jmfmime = "application/vnd.cip4-jmf+xml

我正在使用ATL服务器CAtlHttpCLient向服务器发送HTTP请求

基本上,我的代码如下所示:

ATL::CAtlHttpClient client;
ATL::CAtlNavigateData navigateData;
navigateData.SetSocketTimeout(60000);
navigateData.SetMethod(ATL_HTTP_METHOD_POST);
BX_TString jmfmime = "application/vnd.cip4-jmf+xml";
navigateData.SetPostData((BYTE*) msg.c_str(), msg.length(), jmfmime.c_str());

client.Navigate("http://[fe80::21a:a0ff:fec1:5917%6]:8090/someextrastuff", &navigateData);
当我使用IP4地址来连接时,一切都是最好的。但是,导航功能似乎不适用于IP6地址

在内部,“[”和“]”字符在URL中不被视为有效字符,URL被转换为类似以下内容
http://%5bfe80::21a:a0ff:fec1:5917%6%5d:8090/someextrastuff
。因此,无法解析URL

我知道CAtlHttpClient应该同时支持IP4和IP6地址。看来我错过了什么

我应该以不同的方式指定IP6地址吗

或者我不允许在Navigate函数中指定IP地址,我是否应该始终使用主机名并希望客户端始终能够解析主机名?

在我的ATL版本(包含在Visual Studio 2005中)中,URL是使用CUrl助手类解析的;该类似乎不支持IPv6地址。也许这在最近的版本中是固定的?如果没有,您可以手动构建一个CUrl对象,并将其传递给重载的Navigate()方法。

在我的ATL版本(包含在Visual Studio 2005中)中,URL由CUrl助手类解析;该类似乎不支持IPv6地址。也许这在最近的版本中是固定的?如果没有,您可以手动构建一个CUrl对象并将其传递给重载的Navigate()方法