簡體   English   中英

如何在檢票口中解析多部分表單數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM