我使用Perl 5.16和REST :: Client。使用perl時從休息服務獲得狀態405 REST :: Client
我的代碼看起來是這樣的:
my $client = REST::Client->new();
$client->setHost($server_address);
my $url = "www.myservice.com/rest/do";
my $json = JSON->new;
my $json_request = $json->encode($request);
$client->addHeader("x-request-header", $base64Header);
$client->addHeader("Content-Type", "application/json");
$client->POST($url, $json_request);
此代碼總是產生HTTP狀態405(不允許的方法)。
然而,當我簡單地使用捲曲用相同的細節,響應成功:
sendCURL($client->getHost().$url, $json_request, $base64Header);
sub sendCURL {
my $url = $_[0];
my $data = $_[1];
my $header = $_[2];
my $curl = "curl --data \'".$data."\' --header \"Content-Type: application/json\" --header \"x-request-header: ".$header."\" ".$url;
print $curl."\n";
my $response = system $curl;
print $response."\n";
}
注意的捲曲請求,絕對是一個POST(--data參數會導致一個POST請求),我知道確信該服務正在等待POST。
它必須是perl模塊REST :: Client中的一個問題。 也許我使用它錯了?
curl請求肯定是POST(--data參數導致POST請求) – asafd 2014-11-06 07:17:36
...和服務器日誌? – 2014-11-10 16:34:55