How to use std.net.curl with specific curl query?
tastyminerals
tastyminerals at gmail.com
Thu Sep 3 12:39:23 UTC 2020
On Thursday, 3 September 2020 at 11:14:14 UTC, tastyminerals
wrote:
> I have a specific curl query that I want to use in a D script
> via std.net.curl.
>
> Here is the query:
>
> curl -v -X POST
> --data-urlencode "username=user at gmail.net"
> --data-urlencode "password=12345"
> -H "Content-Type: application/x-www-form-urlencoded"
> -H "Accept: application/json"
> -u "client_name:CLIENT_PASS"
> "https://some.i.net/oauth/token?grant_type=password"
>
> The std.net.curl post documentation says that it needs a URL
> and a key:value map as arguments. However, what should be the
> key and what should be the value given the above query? There
> are two "--data-urlencode" parameters so the map cannot have
> two identical keys. Unfortunately the documentation is lacking
> both information and examples. Can somebody help me out here
> please?
>
> In addition, the current "post" ddoc example fails to run
> throwing "std.net.curl.CurlException at std/net/curl.d(4402):
> Couldn't resolve host name on handle 55DF372ABBC0"
Figured it out, just needed to read further docs.
auto http =
HTTP("https://some.i.net/oauth/token?grant_type=password");
auto data = "username=user at gmail.net&password=12345";
http.setPostData(data, "application/x-www-form-urlencoded");
http.addRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
http.addRequestHeader("Accept", "application/json");
http.setAuthentication("client_name", "CLIENT_PASS");
http.perform
More information about the Digitalmars-d-learn
mailing list