これは、HttpPost 経由でサーバーに送信する Json 形式です。
{
"key1":"value2",
"key2":"value2" ,
"key3":"value3",
"key4":"value4",
"key5":[
{"key5.1.1":"value5.1.1"},
{"key5.2.1":"value5.2.1"},
{"key5.3.1":"value5.3.1"},
{"key5.4.1":"value5.4.1"}
]
}
小さいサイズの Json では問題なく動作しますが、問題は、key5 の jsonarray がサイズを大きくすると、例外がスローされることです。では、Http Post を使用して大きな JSON 文字列をサーバーに送信するにはどうすればよいでしょうか。
私は maven と Jboss7.1.1.Final を使用しています。
長い JSON オブジェクトを受け入れるために jboss 設定で行う必要がある変更はありますか?
また、Webservice クライアントを使用して、以下を使用して HttpPost 経由で上記のデータを文字列形式で送信しています。
HttpPost request = new HttpPost(BASE_URL + SEND_URL + "/" + URLEncoder.encode(new Gson().toJson(input)));
request.addHeader("content-type", "application/x-www-form-urlencoded");
HttpResponse response = httpClient.execute(request);
そして、より長いJson文字列に対してのみエラーをスローします
java.net.SocketException: org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149) の java.net.SocketInputStream.read(SocketInputStream.java:168) で接続がリセットされました。 org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264) の .impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110) org.apache.http.impl.conn.LoggingSessionInputBuffer.readLine の(LoggingSessionInputBuffer.java:115) org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98) で
次のリンクを確認しましたが、解決策がありませんでした
またhttp://geekswithblogs.net/frankw/archive/2008/08/05/how-to-configure-maxjsonlength-in-asp.net-ajax-applications.aspxによると、 JSON は Jboss のサイズを制限していません