/** * 移除content-type中的charset * * @param encoding 编码 * @param entity 请求参数及数据信息 */ private static void removeContentTypeCharset(String encoding, HttpEntity entity) { try { Class<?> clazz = entity.getClass(); Field field = clazz.getDeclaredField("contentType"); field.setAccessible(true); //将字段的访问权限设为true:即去除private修饰符的影响 if(Modifier.isFinal(field.getModifiers())){ Field modifiersField = Field.class.getDeclaredField("modifiers"); //去除final修饰符的影响,将字段设为可修改的 modifiersField.setAccessible(true); modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); } BasicHeader o = (BasicHeader) field.get(entity); field.set(entity, new BasicHeader(HTTP.CONTENT_TYPE, o.getValue().replace("; charset="+encoding,""))); } catch (NoSuchFieldException e) { Utils.exception(e); } catch (SecurityException e) { Utils.exception(e); } catch (IllegalArgumentException e) { Utils.exception(e); } catch (IllegalAccessException e) { Utils.exception(e); } }