sparkjavaを使用している私のサーバとクライアント(Android)が話していますが、クライアントがレスポンスのボディを解析しようとしているときに実行していますresponse.data
Volleyと、それは応答のボディが空であることを得ている。クライアントはJsonRequestObject
を送信しています。応答の本文が空の場合はJSONExceptionがスローされます。ここでSparkjavaがレスポンスボディにデータを入れられない
は、私たちのsparkJavaコントローラです:
public static String doThis(Request request, Response response) {
response.type("application/json");
// If the request fails validations, then return a 400
if (request.failsValidations()) {
response.status(HTTP_BAD_REQUEST); // 400
response.header("Error", "Bad request");
} else {
response.status(HTTP_SUCCESS); // 200
// Put the response into the data
String responseData = "{//someJson}"
response.header("data", responseData);
response.body(data);
}
return "";
}
私はヘッダとボディで同じデータを設定するんだけど、私は、クライアント上で受信した応答を見ると、データはヘッダのみであり、体の中ではありません。だから私はSparkのresponse.body()メソッドが実際に返される応答にデータを入れていないと考えていました。 response.bodyがvolarkleyの見方とは違うsparkjavaで表現される方法ですか?あるいは、sparkからレスポンスボディにデータを入れる別の方法がありますか?
ありがとうございます!これはうまくいきましたが、私はなぜsparkのレスポンスを知らないのですか?body()は何も身体に入れていませんでした。 –
@SamShihはこの問題をhttps://github.com/perwendel/spark/issues/750で確認します。これ以上混乱するのは普通です。これは古い問題であり、悪い/誤解を招くようなデザインのIMOです。 –
@ k.liakosが同意した。 – SHG