2014-06-26 16 views
5

CUPS-Get-Devices için gerekli özniteliğin Eksik olmasıyla ilgili bir sorun yaşıyorum. Temel olarak, https://www.npmjs.org/package/ipp kullanarak IPP ve CUPS ile mevcut yazıcıların listesini almak istiyorum.IPP node.js ipp modülünü kullanan CUPS-Get-Aygıtlarında eksik öznitelik

Paketin özniteliğini desteklemediği için CUPS-Get-Devices'ı pakete uyguladım, ancak çalışıyorum. Sorun, yanıtın "durum mesajı" ile yanıt vermesidir: "Gerekli öznitelikler eksik." ve bana yazıcıların listesini vermiyor.

var uri = "http://localhost:631" 
var data = ipp.serialize({ 
    "operation": "CUPS-Get-Printers", 
    "operation-attributes-tag": { 
    "attributes-charset": 'utf-8', 
    "attributes-natural-language": 'en-us', 
    "limit": 10 
} 
}); 

ipp.request(uri, data, function(err, res){ 
    if(err){ 
    return console.log(err); 
    } 
    console.log(JSON.stringify(res,null,2)); 
}); 

tepki

{ 
    "version": "2.0", 
    "statusCode": "client-error-bad-request", 
    "id": 67392993, 
    "operation-attributes-tag": { 
    "attributes-charset": "utf-8", 
    "attributes-natural-language": "en-us", 
    "status-message": "Missing required attributes." 
    } 
} 

herkes sorun nerede biliyor mu gerekli diğer parametreleri http://www.cups.org/documentation.php/spec-ipp.html#CUPS_GET_PRINTERS

hakkında hiçbir şey söylemez belgeler nedir? Teşekkür ederim!

cevap

2

Bu kod benim için değiştirilmemiş bir ipp kitaplığı ve CUPS 1.7.3 ile çalışır. En iyi tahminim, kütüphaneyi değiştirdiğinizde bir yazım hatası veya bir şey yaptığınız.

var ipp = require('ipp'); 

// Add missing operation code 
ipp.operations['CUPS-Get-Printers'] = 0x4002; 

// The rest is identical to your code: 

var uri = "http://localhost:631"; 
var data = ipp.serialize({ 
    "operation": "CUPS-Get-Printers", 
    "operation-attributes-tag": { 
    "attributes-charset": 'utf-8', 
    "attributes-natural-language": 'en-us', 
    "limit": 10 
    } 
}); 

ipp.request(uri, data, function(err, res){ 
    if(err){ 
    return console.log(err); 
    } 
    console.log(JSON.stringify(res,null,2)); 
});