Node.js - Craigslist批量发布api(无法解析rss)

时间:2015-07-20 00:04:48

标签: xml node.js api rss craigslist

我正在使用批量发布api for craigslist。我写了一个看起来像这样的快速脚本:

var https = require('https');
var posting = '<?xml version="1.0"?><rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cl="http://www.craigslist.org/about/cl-bulk-ns/1.0"><channel><items><rdf:li rdf:resource="NYCBrokerHousingSample1"/><rdf:li rdf:resource="NYCBrokerHousingSample2"/></items><cl:auth username="example@example.com" password="example" accountID="14"/></channel><item rdf:about="NYCBrokerHousingSample1"><cl:category>fee</cl:category><cl:area>nyc</cl:area><cl:subarea>mnh</cl:subarea><cl:neighborhood>Upper West Side</cl:neighborhood><cl:housingInfo price="1450" bedrooms="0" sqft="600"/><cl:replyEmail privacy="C">bulkuser@bulkposterz.net</cl:replyEmail><cl:brokerInfo companyName="Joe Sample and Associates" feeDisclosure="fee disclosure here" /><title>Spacious Sunny Studio in Upper West Side</title><description><![CDATA[posting body here]]></description></item><item rdf:about="NYCBrokerHousingSample2"><cl:category>fee</cl:category><cl:area>nyc</cl:area><cl:subarea>mnh</cl:subarea><cl:neighborhood>Chelsea</cl:neighborhood><cl:housingInfo price="2175" bedrooms="1" sqft="850" catsOK="1"/><cl:mapLocation city="New York" state="NY" crossStreet1="23rd Street" crossStreet2="9th Avenue" latitude="40.746492" longitude="-74.001326"/><cl:replyEmail privacy="C" otherContactInfo="212.555.1212">bulkuser@bulkposterz.net</cl:replyEmail><cl:brokerInfo companyName="Joe Sample and Associates" feeDisclosure="fee disclosure here" /><title>1BR Charmer in Chelsea</title><description><![CDATA[posting body goes here]]></description><cl:PONumber>Purchase Order 094122</cl:PONumber></item></rdf:RDF>'

var options = {
  hostname: 'post.craigslist.org',
  path: '/bulk-rss/validate',
  method: 'POST',
  headers: {
    'Content-Type' : 'application/x-www-form-urlencoded'
  }
};

var req = https.request(options, function(res) {
  console.log("headers: ", res);

  res.on('data', function(d) {
    process.stdout.write(d);
  });
});
req.write(posting)
req.end()

req.on('error', function(e) {
  console.error(e);
});

我收到了415不支持的媒体类型回复以及其他消息no element found at line 1, column 0, byte -1。 xml直接来自他们的例子,所以看起来解析xml不会有问题,除非我发送https请求的方式有问题。

1 个答案:

答案 0 :(得分:0)

要通过Craigslist批量发布API发布,您必须拥有一个PAID帐户,您可以通过电话等进行验证,并按照发布付款。这可能是它无法正常工作的原因。