std.net.curl.CurlException Couldn't resolve host name on handle
Vino
akashvino79 at gmail.com
Sat Mar 14 05:27:15 UTC 2020
On Saturday, 14 March 2020 at 04:24:20 UTC, Vino wrote:
> On Friday, 13 March 2020 at 18:10:51 UTC, Vino wrote:
>> Hi All,
>>
>> Request your help, the below code is fetching the required
>> data, after fetching the data at the end it throws the below
>> errors , hence request your help on how to handle this issue.
>>
>> Code:
>>
>> import std.net.curl, std.stdio, std.conv: to;
>>
>> void main () {
>> auto http = HTTP();
>> http.handle.set(CurlOption.userpwd, "test:password");
>> http.handle.set(CurlOption.connecttimeout, 300);
>> http.handle.set(CurlOption.timeout, 600);
>> http.handle.set(CurlOption.tcp_nodelay, 1);
>> http.handle.set(CurlOption.buffersize,1073741824);
>> http.handle.set(CurlOption.url, "https://test:8130/sdata");
>> http.method(HTTP.Method.get);
>> auto content = http.perform();
>> http.shutdown;
>> foreach (line; byLine(to!string(content)))
>> writeln(line);
>> }
>>
>> Error
>> std.net.curl.CurlException at std\net\curl.d(4364): Couldn't
>> resolve host name on handle BC9A90
>> ----------------
>> 0x004032AF
>> 0x00403258
>> 0x00408A34
>> 0x00408890
>> 0x00403F89
>> 0x00403046
>> 0x004023E8
>> 0x0041A073
>> 0x00419FED
>> 0x00419E88
>> 0x00413EBA
>> 0x0040B18B
>> 0x74EE6359 in BaseThreadInitThunk
>> 0x77227B74 in RtlGetAppContainerNamedObjectPath
>> 0x77227B44 in RtlGetAppContainerNamedObjectPath
>>
>> From,
>> Vino.B
>
> Hi All,
>
> I was able to resolve this issue by upgrading DMD from V88 to
> V91.0, and now I am getting the below error when i set any of
> the below options
>
> http.handle.set(CurlOption.ipresolve, "v4");
> http.handle.set(CurlOption.http_version, "v1_1");
> http.handle.set(CurlOption.sslversion, "sslv3");
>
> Error:
> std.net.curl.CurlException at std\net\curl.d(4388): A libcurl
> function was given a bad argument on handle CF2990
> ----------------
> 0x0040B425
> 0x00402397
> 0x00406E17
> 0x00406D91
> 0x00406C2A
> 0x0040404A
> 0x0040242F
> 0x75BC6359 in BaseThreadInitThunk
> 0x77BB7B74 in RtlGetAppContainerNamedObjectPath
> 0x77BB7B44 in RtlGetAppContainerNamedObjectPath
>
> from,
> Vino.B
Hi All,
Was able to resolve the above issue, but need your advice as to
whether i thoughts are correct.
ipresolve: The document(crul.d) for the ipresolve states the type
as
enum CurlIpResolve: int;
enum CurlIpResolve {
whatever = 0, /** default, resolves addresses to all IP
versions that your system allows */
v4 = 1, /** resolve to ipv4 addresses */
v6 = 2 /** resolve to ipv6 addresses */
}
Solution: so I added the line
"http.handle.set(CurlOption.ipresolve, 1);" for ipv4
http_version: The document(crul.d) for the http_version states
the type as
enum http_version int
enum CurlHttpVersion {
none, /** setting this means we don't care, and that we'd
like the library to choose the best possible
for us! */
v1_0, /** please use HTTP 1.0 in the request */
v1_1, /** please use HTTP 1.1 in the request */
last /** *ILLEGAL* http version */
}
Solution: so I added the line
"http.handle.set(CurlOption.http_version, 2);" for v1_1, not sure
whether this is correct as it is not mentioned just followed the
same rule of ipresolve.
sslversion: The document(crul.d) for the sslversion states the
type as
enum CurlSslVersion: int;
enum CurlSslVersion {
default_version, ///
tlsv1, ///
sslv2, ///
sslv3, ///
last /** never use */
}
Solution: so I added the line
"http.handle.set(CurlOption.sslversion, 4);" for sslv3, not sure
whether this is correct as it is not mentioned just followed the
same rule of ipresolve.
From,
Vino.B
More information about the Digitalmars-d-learn
mailing list