インターフェースのmu、Android、IOSの互換性の問題を解決します。
mui一般的なデフォルト要求フォーマットはheaders:{{Content-Type}、''aplication/x-wn-form-urlencoded}、Android原生とIOSのデフォルト要求フォーマットはaplication/JSONであるため、インターフェースがいくつかの場合に共通して互換性の問題を解決しなければならないという結果になります。アプリケーション/JSON要求を解析するためのツールクラスを実装します。
public static JSONObject getJSONParam(HttpServletRequest request){
JSONObject jsonParam = null;
try {
//
BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
// Stringbuilder
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = streamReader.readLine()) != null) {
sb.append(line);
}
jsonParam = JSONObject.parseObject(sb.toString());
// json
//System.out.println(jsonParam.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
return jsonParam;
}
Controllerから呼び出し// , application/x-www-form-urlencoded String ,HttpServletRequest application/JSON
@CrossOrigin
@PostMapping("getCusterMobile")
public Map getCusterMobile(HttpServletRequest request,String token,HttpServletResponse response) {
response.setHeader("Access-Control-Allow-Origin", "*");//
Map map = new HashMap<>();
// application/JSON , request
JSONObject jsonParam = Tool.getJSONParam(request);
if(jsonParam!=null) {
if(!StringUtils.hasText(token)) {
token = jsonParam.getString("token");
}
}
try {
if(!StringUtils.hasText(token)) {
token = jsonParam.getString("token");
}
} catch (Exception e) {
e.printStackTrace();
map.put("status",6);
map.put("msg", " ...");
}
return map;
}