requestでPOST方式で「Contect-type」を取得するのは、「aplication/x-wn-form-urlencoded;charset=utf-8」で送信されるjsonデータです。


requestでPOST方式で「Contect-type」を取得するのは「aplication/x-wn-form-urlencoded;charset=utf-8」で送信されるjsonデータです。
記事の目次
  • は、requestでPOST方式で「Contint type」を取得する。「aplication/x-www-form-urlencoded;charset=utf-8」で送信されたjsonデータ)
  • である。
  • 方式の一:ストリームの四角形による
  • 方式2:Mapを取得することにより
  • を処理する。
  • 方式3:全パラメータ名を取得することによって
  • 一般的なConteet typeを添付します。
    requestでjsonデータを送信してpost方式でContent-typeをaplication/jsonに送信します。charset=utf-8に送ったら、springMVCの@Request Bodyラベルで後ろと実体の対象を受ければいいです。springは自動的に対象に綴り込みます。もしContent-typeがapple/x-www-form-urlencoddに設定されたら。charset=utf-8はspringのものを使うことができなくて、普通の方式でjsonを得ることしかできませんでした。
    方式一:流れの方式を通じて
    import java.io.IOException;
    import javax.servlet.http.HttpServletRequest;
     
    /**      
     * request        
     * @author zhangtengda        
     * @version 1.0      
     * @created 2015 5 2    8:25:43     
     */       
    public class GetRequestJsonUtils {
     
        /***
         *    request   json       
         * 
         * @param request
         * @return : byte[]
         * @throws IOException
         */
        public static String getRequestJsonString(HttpServletRequest request)
                throws IOException {
            String submitMehtod = request.getMethod();
            // GET
            if (submitMehtod.equals("GET")) {
                return new String(request.getQueryString().getBytes("iso-8859-1"),"utf-8").replaceAll("%22", "\"");
            // POST
            } else {
                return getRequestPostStr(request);
            }
        }
     
        /**      
         *   :   post     byte[]   
         * 
    
         *   :
         * 
    *@param request
    *@return
    *@throws IOException
    */
    public static byte[]get Request PostByttes(HttpServletRequest request)
    throws IOException{
    int contentLength=request.get ContentLength()
    if(contentLength<0){
    return null
    )
    byte buffer[]=new byte[content Length]
    for(int i=0;i<content Length;){
    int readlen=request.get Input Stream().read(buffer,i,
    contentLength-i)
    if(readlen==-1){
    break;
    )
    i+=readlen
    )
    return buffer
    )
    /**
    * :postリクエスト の
    
         *   :
         * 
    *@param request
    *@return
    *@throws IOException
    */
    public static String getRequest PostStr(HttpServletRequest request)
    throws IOException{
    byte buffer[]=get Request PostByttes;
    String charEnccoding=request.get CharcterEnccoding()
    if(charEnccoding==null){
    charEnccoding="UTF-8"
    )
    return new String;
    )
    )
    :Mapを することにより する。
    このような には があります。jsonデータに= があると、データは のところで れます。 ろのデータはmapのvaluesに されます。keyとvaluesの を み わせて、 のjson に み わせます。
    /** 
    	 *      :    map   
    	 */ 
    	@SuppressWarnings("rawtypes")
    	private String getParameterMap(HttpServletRequest request) {
    		Map map = request.getParameterMap();
    		String text = "";
    		if (map != null) {
    			Set set = map.entrySet();
    			Iterator iterator = set.iterator();
    			while (iterator.hasNext()) {
    				Map.Entry entry = (Entry) iterator.next();
    				if (entry.getValue() instanceof String[]) {
    					logger.info("==A==entry key: " + entry.getKey());
    					String key = (String) entry.getKey();
    					if (key != null && !"id".equals(key) && key.startsWith("[") && key.endsWith("]")) {
    						text = (String) entry.getKey();
    						break;
    					}
    					String[] values = (String[]) entry.getValue();
    					for (int i = 0; i < values.length; i++) {
    						logger.info("==B==entry value: " + values[i]);
    						key += "="+values[i];
    					}
    					if (key.startsWith("[") && key.endsWith("]")) {
    						text = (String) entry.getKey();
    						break;
    					}
    				} else if (entry.getValue() instanceof String) {
    					logger.info("==========entry key: " + entry.getKey());
    					logger.info("==========entry value: " + entry.getValue());
    				}
    			}
    		}
    		return text;
    	}
    
    3:すべてのパラメータ を する
    このような にも があります。jsonの で な を えられません。 えば/==、/、~などの は あっても めません。 のモードとMapの は じです。Mapに えて します。
    /** 
    	 *      :            
    	 */ 
    	@SuppressWarnings({ "rawtypes", "unchecked" })
    	private String getParamNames(HttpServletRequest request) {  
    		Map map = new HashMap();  
            Enumeration paramNames = request.getParameterNames();  
            while (paramNames.hasMoreElements()) {  
                String paramName = (String) paramNames.nextElement();  
      
                String[] paramValues = request.getParameterValues(paramName);  
                if (paramValues.length == 1) {  
                    String paramValue = paramValues[0];  
                    if (paramValue.length() != 0) {  
                        map.put(paramName, paramValue);  
                    }  
                }  
            }  
      
            Set> set = map.entrySet();  
            String text = "";
            for (Map.Entry entry : set) {  
            	logger.info(entry.getKey() + ":" + entry.getValue());  
                text += entry.getKey() + ":" + entry.getValue();
                logger.info("text------->"+text);
            }  
            if(text.startsWith("[") && text.endsWith("]")){
            	return text;
            }
            return "";
        }
    
    
    なConteet typeを します。
    application/x-javascript text/xml->xml   
    application/x-javascript->json   
    application/x-www-form-urlencoded->     
    application/json;charset=utf-8 -> json  
    
    : は の があります。CSDN :https://blog.csdn.net/mingtianhaiyouwo/article/details/51459764 はブロガーのオリジナル です。 はブログのリンクを してください。