2016-07-30 5 views
2

Я провел исследование на google и многих других страницах, чтобы я мог извлечь данные через traccar api here, поэтому я буду продолжать исследование, как его использовать, и, наконец, найти этот ответ here от mvalverde , На этом посту он написать код, например:Как использовать traccar api для получения устройств

// find All devices - GET request 
var result = HTTP.call(
    "GET", 
    'http://your_domain:8082/api/devices/', 
    { 
     auth: '[email protected]:password' , 
     params: { 
     } 
    } 
); 

// add device 
var name = 'name your device'; 
var uniqueId = '122323223232'; // usually this is the device imei 
var result = HTTP.post(
    'http://your_domain:8082/api/devices/', 
    { 
     auth: '[email protected]:password' , 
     data:{ 
      groupId:null, 
      id: null, 
      lastUpdate:null, 
      status:'', 
      name:name, 
      uniqueId:uniqueId 
     } 
    } 
); 

он сказал, что это JavaScript, поэтому я стараюсь реализовать в JavaScript, как:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>try traccar api</title> 
    </head> 
    <body> 
    <script type="text/javascript"> 
     var result = HTTP.call(
     "GET", 
     'http://103.23.20.176:8082/api/devices/', 
     { 
      auth: 'email:password' , 
      params: { 
      } 
     } 
    ); 
     console.log(result); 
    </script> 
    </body> 
</html> 

, но я получаю сообщение об ошибке в консоли. я подозреваю, что это не чистый javascript, если он так может помочь мне написать реализацию с помощью javascript. так что каждый может помочь мне решить эту проблему.

пс: я все еще новичок в Js поле

== UPDATE ==
благодаря Антону Тананаев, я решить эту проблему, как это:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>try traccar api</title> 
    </head> 
    <body> 
    <script src="js/jquery-2.2.2.min.js" charset="utf-8"></script> 
    <script type="text/javascript"> 
     $.ajax({ 
     type: 'get', 
     url: 'http://103.23.20.176:8082/api/devices/', 
     headers: { 
      "Authorization": "Basic " + btoa("admin:admin") 
     }, 
     success: function (response) { 
      console.log(response); 
     } 
     }); 
    </script> 
    </body> 
</html> 

и 1 вопрос снова, как отправлять данные? Я пробовал вот так:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>try traccar api</title> 
    </head> 
    <body> 
    <script src="js/jquery-2.2.2.min.js" charset="utf-8"></script> 
    <script type="text/javascript"> 
     var name = "Bus 2"; 
     var uid = "1212321233"; 
     $.ajax({ 
     type: 'post', 
     url: 'http://103.23.20.176:8082/api/devices/', 
     headers: { 
      "Authorization": "Basic " + btoa("email:pass") 
     }, 
     data:{ 
      id:null, 
      name:name, 
      uniqueId:uid, 
      groupId:null, 
      status:'', 
      lastUpdate:null 
     }, 
     success: function (response) { 
      console.log(response); 
     } 
     }); 
    </script> 
    </body> 
</html> 

но я получаю код статуса 415 неподдерживаемый тип носителя. что я пропустил в своем коде?

== ЗАКРЫТО ==
окончательный код следующий вопрос здесь,

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>try traccar api</title> 
    </head> 
    <body> 
    <script src="js/jquery-2.2.2.min.js" charset="utf-8"></script> 
    <script type="text/javascript"> 
     var name = "Bus 3"; 
     var uid = "1243232133"; 
     $.ajax({ 
     type: 'post', 
     url: 'http://103.23.20.176:8082/api/devices/', 
     headers: { 
      "Authorization": "Basic " + btoa("email:pass") 
     }, 
     contentType:"application/json", 
     data:JSON.stringify({ 
      name:name, 
      uniqueId:uid 
     }), 
     success: function (response) { 
      console.log(response); 
     } 
     }); 
    </script> 
    </body> 
</html> 

спасибо, я решил мою проблему :)

+0

Что ошибка вы видите? – RiggsFolly

+0

ReferenceError: HTTP не определен @RiggsFolly – dyaadin

ответ

2

Объект HTTP не определен. Вы можете использовать jQuery. Сначала добавьте библиотеку:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 

Затем выполните вызов API. Что-то вроде этого:

$.ajax({ 
    type: 'get', 
    url: 'http://103.23.20.176:8082/api/devices/', 
    headers: { 
     "Authorization": "Basic " + btoa(USERNAME + ":" + PASSWORD) 
    }, 
    success: function (response) { 
     console.log(response); 
    } 
}); 

Чтобы разместить данные, которые вы можете отправить пост запрос, как это:

var data = { 
    name: 'Test', 
    ... 
} 

$.ajax({ 
    type: 'post', 
    data: JSON.stringify(data), 
    contentType: 'application/json', 
    ... 
}); 
+0

спасибо @anton, но как насчет добавления данных? – dyaadin

+0

Добавлена ​​информация о публикации данных. –

+0

спасибо :) Я благодарен, чтобы встретиться с здесь. @anton – dyaadin

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