Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用REST API从Perl到Sharepoint的基本身份验证不起作用_Perl_Rest_Sharepoint - Fatal编程技术网

使用REST API从Perl到Sharepoint的基本身份验证不起作用

使用REST API从Perl到Sharepoint的基本身份验证不起作用,perl,rest,sharepoint,Perl,Rest,Sharepoint,我试图使用Perl REST api连接Sharepoint,但总是出现401未经授权的错误。我已经验证了用户名和密码。当使用相同的凭据通过浏览器访问SharePoint网站时,两者都可以正常工作。我认为您的问题在于encode\u base64-如果您这样做: use REST::Client; use JSON; use Data::Dumper; use MIME::Base64; my $username = 'mydomain.com\admin'; my $password = '

我试图使用Perl REST api连接Sharepoint,但总是出现401未经授权的错误。我已经验证了用户名和密码。当使用相同的凭据通过浏览器访问SharePoint网站时,两者都可以正常工作。

我认为您的问题在于
encode\u base64
-如果您这样做:

use REST::Client;
use JSON;
use Data::Dumper;
use MIME::Base64;

my $username = 'mydomain.com\admin';
my $password = 'testpwd';

my $headers = {Accept => 'application/json', Authorization => 'Basic ' . encode_base64($username . ':' . $password)};

my $client = REST::Client->new();

$client->setHost('http://55.170.145.189:2013');

$client->GET(
    '/SitePages', 
    $headers
);


print $client->responseContent();
输出结果如下:

use Data::Dumper;
use MIME::Base64;

my $username = 'mydomain.com\admin';
my $password = 'testpwd';

my $headers = {Accept => 'application/json', 
               Authorization => 'Basic ' . encode_base64($username . ':' . $password)};
print Dumper $headers;
您的标题中有一个错误的换行符

因此,不妨尝试:

$VAR1 = {
          'Accept' => 'application/json',
          'Authorization' => 'Basic bXlkb21haW4uY29tXGFkbWluOnRlc3Rwd2Q=
'
        };
它将base64行的结尾设置为
'
。因此,你可以得到:

my $headers = {Accept => 'application/json', 
               Authorization => 'Basic ' . encode_base64($username . ':' . $password, '')};

我认为您的问题在于
encode_base64
-如果您这样做:

use REST::Client;
use JSON;
use Data::Dumper;
use MIME::Base64;

my $username = 'mydomain.com\admin';
my $password = 'testpwd';

my $headers = {Accept => 'application/json', Authorization => 'Basic ' . encode_base64($username . ':' . $password)};

my $client = REST::Client->new();

$client->setHost('http://55.170.145.189:2013');

$client->GET(
    '/SitePages', 
    $headers
);


print $client->responseContent();
输出结果如下:

use Data::Dumper;
use MIME::Base64;

my $username = 'mydomain.com\admin';
my $password = 'testpwd';

my $headers = {Accept => 'application/json', 
               Authorization => 'Basic ' . encode_base64($username . ':' . $password)};
print Dumper $headers;
您的标题中有一个错误的换行符

因此,不妨尝试:

$VAR1 = {
          'Accept' => 'application/json',
          'Authorization' => 'Basic bXlkb21haW4uY29tXGFkbWluOnRlc3Rwd2Q=
'
        };
它将base64行的结尾设置为
'
。因此,你可以得到:

my $headers = {Accept => 'application/json', 
               Authorization => 'Basic ' . encode_base64($username . ':' . $password, '')};

Iirc Rest::Client模块具有自动设置凭据的内置方法,但我现在无法验证。Iirc Rest::Client模块具有自动设置凭据的内置方法,但我现在无法验证。