2017-01-04 3 views
1

Я использую Restler библиотеку в качестве клиента Rest по проекту IONIC потреблять Notejs API, goald является использование Restler вместо Http службы Angularjs:Как использовать клиентскую библиотеку Restler Rest вместо Угловое/HTTP

Я попробовал этот путь:

let options = { headers: {'Authorization':[this.token]}}; 

restler.get('http://localhost:8083/api/auth/protected', JSON.stringify(options)).on('complete', function(result, response) { 
    if (result instanceof Error) { 
     reject(result); 
    } else { 
     resolve(result); 
    } 
}); 

этот путь возврата: результат "Несанкционированный"

угловой/Http путь:

let headers = new Headers(); 
headers.append('Authorization', this.token); 

this.http.get('http://localhost:8083/api/auth/protected', {headers: headers}) 
     .subscribe(res => { 
      resolve(res); 
     }, (err) => { 
      reject(err); 
     }); 

и это возвращает: {"_body":"{\"content\":\"Success\"}","status":200,"ok":true,"statusText":"OK","headers":{"Content-Type":["application/json; charset=utf-8"]},"type":2,"url":"http://localhost:8083/api/auth/protected"}

Я попытался Restler получить метод потреблять RESTful API без параметров и работать, я думаю, что параметр опции (заголовки) не правильно прошли

+0

я думаю, что лучший способ создать перехватчик вашего запроса HTTP и установить заголовок есть (так что вы надеваете» t должен делать это каждый запрос) –

+0

Взгляните на свой способ передачи аутентификационного токена, более утонченным способом, который вы делаете с массивом, а в ng2 http - простой маркер. это разница imho. попробуйте изменить его, и все должно работать нормально. –

ответ

2

Я рекомендую использовать needle, как клиент Rest API вместо использования restler

Я проверил и это отлично работает, точно так, как @ угловом/услуги HTTP,

, например:

@ угловом/реализация HTTP: осуществление

return new Promise((resolve, reject) => { 

    let headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 

    this.http.post('http://localhost:8083/api/auth/login', JSON.stringify(credentials), {headers: headers}) 
     .subscribe(res => { 

     resolve(data); 

     resolve(res.json()); 
     }, (err) => { 
     reject(err); 
     }); 

     }); 

иглы:

return new Promise((resolve, reject) => { 

    let options = { 
     headers: { 'Content-Type': 'application/json' } 
    } 

    needle.post('http://localhost:8083/api/auth/login', credentials, options, function(err, resp) { 
    if (!err && resp.statusCode == 200){ 
       resolve(resp.body); 
    }else{ 
     reject(err); 

    } 
    }); 
Смежные вопросы