2009-03-20 2 views
0

Я пытаюсь использовать согласование контента, чтобы предоставить как HTML, так и представление RDF/XML ресурса на HTTP-сервере. На стороне сервера это работает, то естьКак загрузить файл с не-HTML-типом контента из браузера?

curl -H "Accept: application/rdf+xml" http://localhost:8182/ontologies/1 

будет получать правильную версию. Я также могу сделать то же самое с JavaScript/Dojo:

function downloadOntologyRDF(ontologyId) { 
    dojo.xhrGet({ 
     url:"${baseUrl}/ontologies/" + ontologyId, 
     headers: {"Accept": "application/rdf+xml"}, 
     timeout: 5000, 
     load: function(response, ioArgs) { 
      var preNode = document.createElement("pre"); 
      preNode.appendChild(document.createTextNode(response)); 
      var foo = new dijit.Dialog({ 
       title: "RDF", 
       content: preNode, 
       style: "overflow: auto;" 
      }); 
      foo.show(); 
      return response; 
     }, 
     error: function(response, ioArgs) { 
      alert("Retrieving the RDF version failed: " + response); 
      return response; 
     } 
    }); 
} 

, который отобразит результат во всплывающем диалоговом окне. Точка, где я застреваю, предлагает пользователю загрузить эту версию. Я хотел бы иметь ссылку на странице, которая либо отображает RDF как страницу в браузере, либо открывает диалог сохранения. Возможно ли это вообще, не прибегая к параметрам запроса или другим трюкам?

+0

Я подозреваю, что нет пути от серверных вещей, таких как параметры запроса – cobbal

ответ

0

Как cobbal упоминает - так как вы не можете установить Accept заголовок в самом URL, вы должны иметь дополнительный механизм согласования содержимого. Некоторые структуры позволяют тип содержимого должны быть установлены в виде

http://example.com/resource;format 

format, имеющим в конце URL, разделенная точкой с запятой. Затем, обрабатывая запрос, он разбирает часть формата.

В вашем случае это может быть что-то вроде

http://localhost:8182/ontologies/1;rdf 

к серверу ФРР, и формат не указан служить то, что в ваших принимают заголовки.

+0

Это классифицирует как «параметры запроса и другие трюки» для меня ;-) Но позвольте мне просто принять этот ответ как длинную версию «нет». –

+0

на момент написания статьи я подумал, что точка с запятой - это хорошая идея, но это приносит больше проблем и не слишком элегантности в бизнесе - вам нужно разобрать ее или настроить в таблице маршрутизации, и она быстро становится неприятной. для меня в конце я пошел с параметром localhost: 8182/онтологии/1? format = rdf –

0

На этой странице объясняется, как настроить страницу aspx, отображающую RDF в браузере. Это может вам помочь. Хотя я не могу быть уверен, потому что вы указали, что вы используете на своем сервере.

Building an RSS feed made simple

+0

Я использую Java/Restlets, но это не имеет значения: серверная сторона уже делает свою вещь как примеры curl/JS показать. RSS-каналы считаются отдельными ресурсами со своим собственным URL-адресом, и я стараюсь использовать согласование контента для получения другого варианта одного и того же ресурса. –

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

  • Нет связанных вопросов^_^