[英]How to parse multi-part form data in wicket
當我的頁面從第三方頁面被點擊時,我在請求有效負載中獲得以下數據:
Content-type: multipart/form-data, boundary----------14048
Content-Length = 590
----------14048
Content-disposition: form-data; name ="xyz"
{"abc":"lmn","def":"ghi"}
----------14048
我需要從Java類中的此參數讀取JSON字符串。 我怎樣才能做到這一點?
我當前的代碼如下所示:
IRequestParameters requestParameters = getRequest().getPostParameters();
if (requestParameters != null && requestParameters.getParameterNames().contains( "abc" )&&requestParameters.getParameterValue( "abc" ) != null){
value = requestParameters.getParameterValue( "abc" ).toString();
}
提前致謝。
首先,您需要在Wicket中解析多部分表單數據 :
MultipartServletWebRequest multiPartRequest =
webRequest.newMultipartWebRequest(getMaxSize(), "ignored");
// multiPartRequest.parseFileParts(); // this is needed after Wicket 6.19.0+
IRequestParameters params = multiPartRequest.getRequestParameters();
然后,您需要解析JSON片段 ,一種方法是使用org.json 。
import org.json.*;
JSONObject jsondict = new JSONObject(params.getParameter("xyz");
然后,您需要獲取您感興趣的JSON參數:
string payload = jsondict.getString("abc");
下面的代碼對我來說很好。
HttpSevletRequest request = (HttpSevletRequest )getRequest.getContainerRequest();
try{
InputStreamReader inputReader = new InputStreamReader(request.getInputStream());
BufferedReader reader = new BufferedReader(inputReader );
for(String line;(line = reader.readLine())!=null;){
if(line.contains("abc")){
//perform task....
}
}
}catch(IOException e){
//logs
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.