1

ContentExchangeオブジェクトにリクエスト属性を設定する方法はありますか? setRequestContentSource(InputStream inputstream)これまでやってきたことは、メソッドを使用して Request body でサーバーに情報を送信することです。Contentしかし、 、Title、などのフィールド名で分類された情報を送信したい場合はどうすればよいAuthorでしょうか?

私が今持っているコードを以下に貼り付けます。ご協力いただきありがとうございます!

exchange.setRequestContentSource(new ByteArrayInputStream(
     serialized.getBytes("UTF-8")));

exchange.setRequestContentType("text/html");
exchange.setMethod("POST");
exchange.setURL(("http://localhost:8089/"));
client.send(exchange);

より正確には、リクエスト属性とは、request.setAttribute("Name","ABC") と同等のものを意味します。この場合のみ、要求は ContentExchange オブジェクトを介して送信されます。

4

1 に答える 1

1

ああ、ServletRequest 属性は HTTP プロトコルの一部ではありません。これらの属性を HTTP プロトコル経由で送信する標準的な方法はありません。実際、サーブレット仕様自体は、アプリケーション固有の情報 (フィルターからサーブレットに情報を渡すなど) および SSL 証明書関連の情報への使用を制限しています。

ただし、標準の POST およびフォーム データを使用し、 HttpServletRequest.getParameter("Content")exchange.setRequestContentType("multipart/form-data");などを使用してこれらの値を取得します。フォームが Web ブラウザーから送信される方法と同様です。ここでの利点は、単純な HTML フォームを提供してアプリケーションをテストできることです。

選択肢 2 は、データを JSON や XML などのマークアップで送信し、サーバーに解析させることです。これには、階層データを使用できるという利点があります。

これに興味がある場合は、REST について読んで、 JerseyRestletなどの REST ライブラリ、およびJAX-RSなどの標準を掘り下げることをお勧めします。

于 2013-03-15T13:45:31.693 に答える