HotelsProウェブサービスに安らかなリクエストを送信する際に問題があります。認証資格情報が提供されていません
IAMが、基本的な資格情報を使用して、このリンクhttps://api-test.hotelspro.com:443に要求を送信しようとしているが、私は毎回助けてください
sub getJSONdata {
my ($SupplierXMLServer, $message, $compressed,$timeOut) =();
($SupplierXMLServer, $message, $compressed,$timeOut) = @_;
$SupplierXMLServer='https://api-test.hotelspro.com/api/v2/search/?destination_code=20b05&checkin=2016-11-09&checkout=2016-11-12¤cy=USD&client_nationality=PS&pax=2';
my $username = "Epilgrim";
my $password = "xxxxxxxxxx";
use LWP::UserAgent;
my $userAgent = LWP::UserAgent->new(agent =>"1");
$userAgent->credentials('https://api-test.hotelspro.com:443', 'api', $username , $password);
$userAgent->timeout($timeOut) if($timeOut); # in seconds
use HTTP::Request::Common;
my $response = '';
if($compressed){
$response = $userAgent->request(GET $SupplierXMLServer,
Content_Type => 'application/json',
Accept_Encoding => "gzip,deflate",
Content => $message);
}
else{
$response = $userAgent->request(GET $SupplierXMLServer,
Content_Type => 'application/json',
Content => $message);
}
return $response->error_as_HTML unless $response->is_success;
#return $response->content;
if($compressed){
return $response->decoded_content;
}
else{
return $response->content;
}
}
をたどるように、この資格情報がbrowser.Myコードに取り組んでいる「認証資格情報が提供されていなかった」エラーが出ます私は正しいコードを書いて正しい方法で要求を送信して有効な応答を得る。
'credentials'の呼び出しで、プロトコルを削除してみることができますか?' hostname:port'の形式でなければなりません - つまり ''api-test.hotelspro.com:443'' http: /stackoverflow.com/questions/1799147/why-dont-my-lwpuseragent-credentials-work – ardavey