2013-06-12 3 views
1

Состояние документации SendHub для отправки сообщения с данными и данными json. Это завиток примера они дали Попытку сделать это с помощью Perl и LWP::User агента, но получить либо плохой запрос или несанкционированногоLWP :: UserAgent API SendHub Issue

ли я запрос закодирован правильно?

локон -H "Content-Type: применение/JSON" -X POST --data '{ "контакты": [1111], "текст": "Тестирование"}' https://api.sendhub.com/v1/messages/?username

require LWP::UserAgent; 

my $uri = 'https://api.sendhub.com/v1/messages/?username=MY_USERNAME\&api_key=MY_KEY_NUMBER'; 
my $json = '{"contacts":[18005551212],"text":"testing"}'; 
my $req = HTTP::Request->new('POST',$uri); 
$req->header('Content-Type' => 'application/json'); 
$req->content($json); 

my $lwp = LWP::UserAgent->new; 
my $response=$lwp->request($req); 

if ($response->is_success) { 
    print $response->decoded_content; 
} 
else { 
    die $response->status_line; 
} 
+0

Вы должны обычно использовать LWP :: UserAgent, а не использовать 'require', если у вас нет веских оснований для этого. Это относится ко всем модулям. – Borodin

ответ

1

It выглядит в основном ОК.

Какова обратная косая черта перед амперсандом в URL-адресе?

'https://api.sendhub.com/v1/messages/?username=MY_USERNAME\&api_key=MY_KEY_NUMBER' 

Я думаю, что это должно быть

'https://api.sendhub.com/v1/messages/?username=MY_USERNAME&api_key=MY_KEY_NUMBER' 

, но если вы получаете 401 Unauthorized то, скорее всего, запрос является правильным, но имя пользователя и ключ неверны.

+1

обратная косая черта была необходима в примере скручивания, потому что URL не указан там; его следует удалить в Perl-коде. – ysth

Смежные вопросы