curl and proxy
auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword?
Re: curl and proxy
On Friday, 3 October 2014 at 04:57:28 UTC, AntonSotov wrote: auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword? I think there's currently no way. curl provides this as an option (CurlOption.proxyuserpwd): curl.set(CurlOption.proxyuserpwd, "myuser:mypasswd"); But unfortunately the `curl` struct is a private member of `HTTP`...
Re: curl and proxy
On Friday, 3 October 2014 at 10:53:27 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 04:57:28 UTC, AntonSotov wrote: auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword? I think there's currently no way. curl provides this as an option (CurlOption.proxyuserpwd): curl.set(CurlOption.proxyuserpwd, "myuser:mypasswd"); But unfortunately the `curl` struct is a private member of `HTTP`... https://github.com/D-Programming-Language/phobos/pull/2581 If you're able to build Phobos, could you give this PR a try? I cannot test it myself, because I don't know of a proxy requiring authentication.
Re: curl and proxy
On Friday, 3 October 2014 at 11:13:11 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 10:53:27 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 04:57:28 UTC, AntonSotov wrote: auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword? I think there's currently no way. curl provides this as an option (CurlOption.proxyuserpwd): curl.set(CurlOption.proxyuserpwd, "myuser:mypasswd"); But unfortunately the `curl` struct is a private member of `HTTP`... https://github.com/D-Programming-Language/phobos/pull/2581 If you're able to build Phobos, could you give this PR a try? I cannot test it myself, because I don't know of a proxy requiring authentication. Works OK for me Thanks
Re: curl and proxy
Cool,thanks. Btw., there could be more special chars to encode...replace beside ":"... like / @ and so on... see also http://www.cyberciti.biz/faq/unix-linux-export-variable-http_proxy-with-special-characters/ for the background Regards notna On Friday, 3 October 2014 at 11:13:11 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 10:53:27 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 04:57:28 UTC, AntonSotov wrote: auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword? I think there's currently no way. curl provides this as an option (CurlOption.proxyuserpwd): curl.set(CurlOption.proxyuserpwd, "myuser:mypasswd"); But unfortunately the `curl` struct is a private member of `HTTP`... https://github.com/D-Programming-Language/phobos/pull/2581 If you're able to build Phobos, could you give this PR a try? I cannot test it myself, because I don't know of a proxy requiring authentication.
Re: curl and proxy
On Saturday, 4 October 2014 at 21:59:43 UTC, notna wrote: Cool,thanks. Btw., there could be more special chars to encode...replace beside ":"... like / @ and so on... see also http://www.cyberciti.biz/faq/unix-linux-export-variable-http_proxy-with-special-characters/ for the background Does std.uri.encode() not take care of these either? Anyway, according to the documentation [1], it effectively only cares for ":". Therefore, I removed the calls to encode(). [1] http://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html
Re: curl and proxy
On Friday, 3 October 2014 at 10:53:27 UTC, Marc Schütz wrote: On Friday, 3 October 2014 at 04:57:28 UTC, AntonSotov wrote: auto http = HTTP("dlang.org"); http.onReceive = (ubyte[] data) { writeln(cast(string) (data)); return data.length; }; http.proxy = "192.168.111.111"; http.proxyPort = 1788; WHAT HERE ? http.perform(); // how to make Сurl authorize on a proxy. I specify proxyUser and proxyPassword? I think there's currently no way. curl provides this as an option (CurlOption.proxyuserpwd): curl.set(CurlOption.proxyuserpwd, "myuser:mypasswd"); But unfortunately the `curl` struct is a private member of `HTTP`... satisfied with your answer.