2017-08-02 8 views
0

要求がURLエンコードされている場合、xspまたはxslを使用してリクエストパラメータのペアを取得できます。しかし、アプリケーション/ jsonリクエストを送信すると、リクエストボディを読み取ることができませんでした。Apache Cocoon 2.1の処理方法Jsonリクエスト本体

Cocoon request APIはgetReader()インタフェースをサポートしていないため、ストリームとしての要求本体も読み取ることができません。 私はsimilar questionを見つけました。答えはテキスト生成器です。これはcocoon generator pageにあることを意味していましたか?

The key request info I can get in cocoon is: 
Header information [name] : Content-Length 
Header information [value] : 838 
Header information [name] : Content-Type 
Header information [value] : application/json 

答えて

0

うわー、誰かがコクーン2.1を使用しています!

私は通常、Cocoonの質問をSOで探すのではなく、ちょうどこれを突き合わせていました。

私はあなたの質問を正しく理解したと思います。それはまだ関連性がある場合はここで は、いくつかの提案です:

  • StreamGenerator
  • だけのSPARQLよりも方法の詳細をしている、あなたの発電機でリクエストを構成し、SparqlTransformerを使用して、それを変換してください。

結果をXSLT JSON parserで変換して、JSONからXMLを取得できます。 私のアプリケーションでは、次のようなパイプラインがあります。

 <!-- Retrieve a list of documents. 
     Request parameters: 
      start (optional): The index of the first document, default is 0. 
      length (optional): The maximum number of results in the list, default is 100. 
     --> 
     <map:match pattern="doclist"> 
     <map:generate type="request"/> 
     <map:transform src="xsl/request_to_doclist-query.xslt"> 
      <map:parameter name="default-start" value="0"/> 
      <map:parameter name="default-length" value="100"/> 
     </map:transform> 
     <map:transform type="sparql"/> 
     <map:transform src="xsl/json-parser.xslt"/> 
     <map:serialize type="xml"/> 
     </map:match> 
+0

ありがとう!それは非常にスマートな解決策です!私のためには、結局私はxspを基本的に要求を処理するためにいくつかのJavaコードを書かせた。 ATM、私は新しいコクーンのバージョンがパイプREST型APIをサポートするリリースされることを期待しています:s。 :-) – ryuukei

関連する問題