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