cURL with Perl
Question posted by: rottmanj
(Newbie)
on
May 6th, 2008 06:16 PM
I am working on a revamp of a previous application that I have written in coldfusion. The application deals with RETS data. The issue that I am having is with using the curl option HTTP_AUTH and CURLAUTH_DIGEST.
When attempting to authenticate against the server. No matter what I try, my authentication always fails. I have made sure to validate the auth information.
In my testings, I have also verified that curl can authenticate via the command line option.
Here is my current testing code base.
-
-
my $curl= new WWW::Curl::easy;
-
$curl->setopt(CURLOPT_VERBOSE,1);
-
$curl->setopt(CURLOPT_HTTPAUTH,CURLAUTH_ANY);
-
$curl->setopt(CURLOPT_USERPWD, '$user:$pass');
-
$curl->setopt(CURLOPT_URL, $site);
-
my $retcode = $curl->perform;
-
-
print $retcode;
This is the error I receive back.
< HTTP/1.1 401 Unauthorized
HTTP/1.1 401 Unauthorized
< Content-Length: 1944
Content-Length: 1944
< Content-Type: text/html
Content-Type: text/html
< Server: Microsoft-IIS/6.0
Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
< WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
< Date: Tue, 06 May 2008 18:13:40 GMT
Date: Tue, 06 May 2008 18:13:40 GMT
< Connection: close
Connection: close
Re: cURL with Perl
Quote:
I am working on a revamp of a previous application that I have written in coldfusion. The application deals with RETS data. The issue that I am having is with using the curl option HTTP_AUTH and CURLAUTH_DIGEST.
When attempting to authenticate against the server. No matter what I try, my authentication always fails. I have made sure to validate the auth information.
In my testings, I have also verified that curl can authenticate via the command line option.
Here is my current testing code base.
-
-
my $curl= new WWW::Curl::easy;
-
$curl->setopt(CURLOPT_VERBOSE,1);
-
$curl->setopt(CURLOPT_HTTPAUTH,CURLAUTH_ANY);
-
$curl->setopt(CURLOPT_USERPWD, '$user:$pass');
-
$curl->setopt(CURLOPT_URL, $site);
-
my $retcode = $curl->perform;
-
-
print $retcode;
This is the error I receive back.
< HTTP/1.1 401 Unauthorized
HTTP/1.1 401 Unauthorized
< Content-Length: 1944
Content-Length: 1944
< Content-Type: text/html
Content-Type: text/html
< Server: Microsoft-IIS/6.0
Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
< WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
< Date: Tue, 06 May 2008 18:13:40 GMT
Date: Tue, 06 May 2008 18:13:40 GMT
< Connection: close
Connection: close
|
I would check, without using your script, that you can log into the website first. The error "Unauthorized" is telling me you cannot.
Regards,
Jeff
Re: cURL with Perl
I have already verified that I am able to log in. The Unauthorized is part of the ResponseHeaders that I receive back.
Re: cURL with Perl
Quote:
I am working on a revamp of a previous application that I have written in coldfusion. The application deals with RETS data. The issue that I am having is with using the curl option HTTP_AUTH and CURLAUTH_DIGEST.
When attempting to authenticate against the server. No matter what I try, my authentication always fails. I have made sure to validate the auth information.
In my testings, I have also verified that curl can authenticate via the command line option.
Here is my current testing code base.
-
-
my $curl= new WWW::Curl::easy;
-
$curl->setopt(CURLOPT_VERBOSE,1);
-
$curl->setopt(CURLOPT_HTTPAUTH,CURLAUTH_ANY);
-
$curl->setopt(CURLOPT_USERPWD, '$user:$pass');
-
$curl->setopt(CURLOPT_URL, $site);
-
my $retcode = $curl->perform;
-
-
print $retcode;
This is the error I receive back.
< HTTP/1.1 401 Unauthorized
HTTP/1.1 401 Unauthorized
< Content-Length: 1944
Content-Length: 1944
< Content-Type: text/html
Content-Type: text/html
< Server: Microsoft-IIS/6.0
Server: Microsoft-IIS/6.0
< X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
< WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="343baa915fcdf513c28822dd5e99f683",opaque="060518134015940"
< Date: Tue, 06 May 2008 18:13:40 GMT
Date: Tue, 06 May 2008 18:13:40 GMT
< Connection: close
Connection: close
|
Using single quotes around variables will block the substitution of those variables(will be considered literal string). Change:
-
$curl->setopt(CURLOPT_USERPWD, '$user:$pass');
to
-
$curl->setopt(CURLOPT_USERPWD, "$user:$pass");
That's how this line should be, though this may/may not solve your issue.
|
|
May 14th, 2008 09:26 PM
# 5
|
Re: cURL with Perl
I am having a heck of a time getting this to work. Every example that I have found uses pretty much what I have here.
At first glance it looks like it is trying to use Basic auth, but I know for a fact that this server uses digest auth.
As I have said before.
Verified that server uses Digest auth
Verified username and password
Verified that URI
Tried with '$user:$pass' and "$user:$pass"
Any help with this would be greatly appreciated.
Here is the output that I get from my app.
- About to connect() to rets.armls.mlsrets.com port 80 (#0)
-
Trying 65.83.83.235... connected
-
Connected to rets.armls.mlsrets.com (65.83.83.235) port 80 (#0)
-
Server auth using Basic with user '*********'
-
GET /rets/login HTTP/1.1
-
Authorization: Basic Q1JJTDAxOkpuITIzQA==
-
Host: rets.armls.mlsrets.com
-
Accept: */*
-
-
-
HTTP/1.1 401 Unauthorized
-
HTTP/1.1 401 Unauthorized
-
Content-Length: 1944
-
Content-Length: 1944
-
Content-Type: text/html
-
Content-Type: text/html
-
Server: Microsoft-IIS/6.0
-
Server: Microsoft-IIS/6.0
-
X-Powered-By: ASP.NET
-
X-Powered-By: ASP.NET
-
WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="44722adb40435c5b13ac90bd5704d271",opaque="14052119422857"
-
WWW-Authenticate: Digest qop="auth",realm="rets@marketlinx.com",nonce="44722adb40435c5b13ac90bd5704d271",opaque="14052119422857"
-
Date: Wed, 14 May 2008 21:19:41 GMT
-
Date: Wed, 14 May 2008 21:19:41 GMT
-
Connection: close
-
Connection: close
Last edited by eWish : May 14th, 2008 at 10:59 PM.
Reason: Please use code tags for data as well
 |
Not the answer you were looking for? Post your question . . .
189,161 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).
|
|
|
Latest Articles: Read & Comment
Top Perl Forum Contributors
|