Buy commercial curl support from WolfSSL. We help you work
out your issues, debug your libcurl applications, use the API, port to new
platforms, add new features and more. With a team lead by the curl founder
himself.
RE: How to authenticate when using “CURLOPT_CONNECT_ONLY” so I can use non-blocking curl_easy_send() and curl_easy_recv()
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Venkat Maddisetti via curl-library <curl-library_at_cool.haxx.se>
Date: Mon, 19 Jul 2021 23:15:52 +0000
Sorry for any confusion, as I mentioned originally, http post works for me as laid out in the example and authentication is not a problem there. Since the response is a stream of data and curl_easy_perform() never returns and the thread is blocked. So I tried using CURLOPT_CONNECT_ONLY where I have a non-blocking send/recv and figured out sending CURLOPT_USERPWD or CURLOPT_USERNAME & CURLOPT_PASSWORD along with CURLOPT_CONNECT_ONLY goes unused as it was not complaining even when I send wrong username/password. Then I tried sending authentication and content-type as part of the http post header along with data using curl_easy_send() but still I guess it is not able to authenticate (as it does not complain about wrong password used) and I do not have response or any errors reported back.
Here is the string I am sending with curl_easy_send(),
"POST /emp/ HTTP/1.1\r\nAuthorization: Basic YWRtaW46cGFzcw==\r\nContent-Type: application/json\r\n%s"
In reference with string used in sendrecv.c example:
const char *request = "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n";
the difference is: GET vs POST and Authentication & Content-Type in my header, which I hope I am doing it right but highly doubtful and need some guidance.
-----Original Message-----
From: Daniel Stenberg [mailto:daniel_at_haxx.se]
Sent: Monday, July 19, 2021 5:26 PM
To: Venkat Maddisetti via curl-library <curl-library_at_cool.haxx.se>
Cc: Venkat Maddisetti <vmaddisetti_at_sharedspectrum.com>
Subject: RE: How to authenticate when using “CURLOPT_CONNECT_ONLY” so I can use non-blocking curl_easy_send() and curl_easy_recv()
On Mon, 19 Jul 2021, Venkat Maddisetti via curl-library wrote:
> Before coming here I realized curl_easy_setopt has no effect setting
> username and password
CURLOPT_USERPWD, CURLOPT_USERNAME and CURLOPT_PASSWORD included ?
> "POST /emp/ HTTP/1.1
If you want HTTP, then using CONNECT_ONLY + send/recv is *extremely* rarely the right answer.
You seem to want a plain POST with Basic auth and libcurl does that pretty well and simply with the regular easy API.
First, get the http-post.c example
Then set CURLOPT_USERNAME and CURLOPT_PASSWORD Then set the right Content-type and make sure the right request body is sent.
Doesn't that cover it?
Date: Mon, 19 Jul 2021 23:15:52 +0000
Sorry for any confusion, as I mentioned originally, http post works for me as laid out in the example and authentication is not a problem there. Since the response is a stream of data and curl_easy_perform() never returns and the thread is blocked. So I tried using CURLOPT_CONNECT_ONLY where I have a non-blocking send/recv and figured out sending CURLOPT_USERPWD or CURLOPT_USERNAME & CURLOPT_PASSWORD along with CURLOPT_CONNECT_ONLY goes unused as it was not complaining even when I send wrong username/password. Then I tried sending authentication and content-type as part of the http post header along with data using curl_easy_send() but still I guess it is not able to authenticate (as it does not complain about wrong password used) and I do not have response or any errors reported back.
Here is the string I am sending with curl_easy_send(),
"POST /emp/ HTTP/1.1\r\nAuthorization: Basic YWRtaW46cGFzcw==\r\nContent-Type: application/json\r\n%s"
In reference with string used in sendrecv.c example:
const char *request = "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n";
the difference is: GET vs POST and Authentication & Content-Type in my header, which I hope I am doing it right but highly doubtful and need some guidance.
-----Original Message-----
From: Daniel Stenberg [mailto:daniel_at_haxx.se]
Sent: Monday, July 19, 2021 5:26 PM
To: Venkat Maddisetti via curl-library <curl-library_at_cool.haxx.se>
Cc: Venkat Maddisetti <vmaddisetti_at_sharedspectrum.com>
Subject: RE: How to authenticate when using “CURLOPT_CONNECT_ONLY” so I can use non-blocking curl_easy_send() and curl_easy_recv()
On Mon, 19 Jul 2021, Venkat Maddisetti via curl-library wrote:
> Before coming here I realized curl_easy_setopt has no effect setting
> username and password
CURLOPT_USERPWD, CURLOPT_USERNAME and CURLOPT_PASSWORD included ?
> "POST /emp/ HTTP/1.1
If you want HTTP, then using CONNECT_ONLY + send/recv is *extremely* rarely the right answer.
You seem to want a plain POST with Basic auth and libcurl does that pretty well and simply with the regular easy API.
First, get the http-post.c example
Then set CURLOPT_USERNAME and CURLOPT_PASSWORD Then set the right Content-type and make sure the right request body is sent.
Doesn't that cover it?
-- / daniel.haxx.se | Commercial curl support up to 24x7 is available! | Private help, bug fixes, support, ports, new features | https://www.wolfssl.com/contact/ ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.htmlReceived on 2021-07-20