requestでPOST方式で「Contect-type」を取得するのは、「aplication/x-wn-form-urlencoded;charset=utf-8」で送信されるjsonデータです。
5683 ワード
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を得ることしかできませんでした。
方式一:流れの方式を通じて
記事の目次
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 はブロガーのオリジナル です。 はブログのリンクを してください。