package hxk.util;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.AbstractHttpMessageConverter;
import org.springframework.util.StreamUtils;
public class CustomStringHttpMessageConverter extends AbstractHttpMessageConverter<String> {
public static final Charset DEFAULT_CHARSET = Charset.forName("utf-8");
private final Charset defaultCharset;
private final List<Charset> availableCharsets;
private boolean writeAcceptCharset = true;
/**
* A default constructor that uses {@code "ISO-8859-1"} as the default charset.
* @see #StringHttpMessageConverter(Charset)
*/
public CustomStringHttpMessageConverter() {
this(DEFAULT_CHARSET);
}
/**
* A constructor accepting a default charset to use if the requested content
* type does not specify one.
*/
public CustomStringHttpMessageConverter(Charset defaultCharset) {
super(new MediaType("text", "plain", defaultCharset), MediaType.ALL);
this.defaultCharset = defaultCharset;
this.availableCharsets = new ArrayList<Charset>(Charset.availableCharsets().values());
}
/**
* Indicates whether the {@code Accept-Charset} should be written to any outgoing request.
* <p>Default is {@code true}.
*/
public void setWriteAcceptCharset(boolean writeAcceptCharset) {
this.writeAcceptCharset = writeAcceptCharset;
}
@Override
public boolean supports(Class<?> clazz) {
return String.class.equals(clazz);
}
@Override
protected String readInternal(Class<? extends String> clazz, HttpInputMessage inputMessage) throws IOException {
Charset charset = getContentTypeCharset(inputMessage.getHeaders().getContentType());
return StreamUtils.copyToString(inputMessage.getBody(), charset);
}
@Override
protected Long getContentLength(String s, MediaType contentType) {
Charset charset = getContentTypeCharset(contentType);
try {
return (long) s.getBytes(charset.name()).length;
}
catch (UnsupportedEncodingException ex) {
// should not occur
throw new IllegalStateException(ex);
}
}
@Override
protected void writeInternal(String s, HttpOutputMessage outputMessage) throws IOException {
if (this.writeAcceptCharset) {
outputMessage.getHeaders().setAcceptCharset(getAcceptedCharsets());
}
Charset charset = getContentTypeCharset(outputMessage.getHeaders().getContentType());
StreamUtils.copy(s, charset, outputMessage.getBody());
}
/**
* Return the list of supported {@link Charset}.
* <p>By default, returns {@link Charset#availableCharsets()}. Can be overridden in subclasses.
* @return the list of accepted charsets
*/
protected List<Charset> getAcceptedCharsets() {
return this.availableCharsets;
}
private Charset getContentTypeCharset(MediaType contentType) {
if (contentType != null && contentType.getCharSet() != null) {
return contentType.getCharSet();
}
else {
return this.defaultCharset;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
restful接口示例代码
共72个文件
jar:53个
java:4个
class:4个
4星 · 超过85%的资源 需积分: 48 172 下载量 133 浏览量
2018-04-25
10:14:48
上传
评论
收藏 25.46MB ZIP 举报
温馨提示
restful接口示例代码restful接口示例代码restful接口示例代码restful接口示例代码
资源推荐
资源详情
资源评论
收起资源包目录
restful.zip (72个子文件)
restful
src
hxk
model
Student.java 618B
util
CustomStringHttpMessageConverter.java 3KB
action
StudentAction.java 2KB
interceptor
LoginInterceptor.java 623B
.classpath 5KB
build
classes
hxk
model
Student.class 901B
util
CustomStringHttpMessageConverter.class 5KB
action
StudentAction.class 3KB
interceptor
LoginInterceptor.class 1KB
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 305B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.component 473B
.jsdtscope 503B
org.eclipse.jdt.core.prefs 670B
WebContent
META-INF
MANIFEST.MF 39B
WEB-INF
lib
spring-expression-3.2.4.RELEASE.jar 192KB
spring-aspects-3.2.4.RELEASE.jar 50KB
jta.jar 9KB
slf4j-jcl-1.6.6.jar 8KB
spring-core-3.2.4.RELEASE.jar 849KB
commons-lang-2.5.jar 273KB
jackson-core-asl-1.7.2.jar 203KB
commons-beanutils-1.7.0.jar 184KB
aspectj-1.6.10.jar 12.12MB
json-lib-2.1-jdk15.jar 293KB
dom4j-1.6.1.jar 307KB
spring-webmvc-3.2.4.RELEASE.jar 622KB
slf4j-nop-1.6.6.jar 5KB
spring-tx-3.2.4.RELEASE.jar 237KB
spring-context-3.2.4.RELEASE.jar 843KB
spring-aop-3.2.4.RELEASE.jar 328KB
ezmorph-1.0.3.jar 76KB
aopalliance-1.0.jar 4KB
hibernate-validator-4.3.0.Final.jar 465KB
commons-httpclient-3.1.jar 298KB
commons-logging.jar 44KB
commons-io.jar 82KB
servlet-api.jar 173KB
commons-collections-2.1.1.jar 171KB
httpclient-4.1.2.jar 344KB
jsp-api.jar 86KB
httpcore-4.1.2.jar 177KB
commons-codec.jar 46KB
jstl.jar 20KB
standard.jar 384KB
aopalliance-alpha1.jar 22KB
javassist-3.7.ga.jar 531KB
log4j-1.2.17.jar 478KB
validation-api-1.1.0.Alpha1.jar 51KB
slf4j-migrator-1.6.6.jar 28KB
slf4j-simple-1.6.6.jar 10KB
aspectjweaver-1.6.9.jar 1.59MB
slf4j-log4j12-1.6.6.jar 9KB
commons-dbcp.jar 119KB
jackson-mapper-asl-1.7.2.jar 610KB
cglib-nodep-2.1_3.jar 317KB
commons-fileupload.jar 52KB
spring-web-3.2.4.RELEASE.jar 611KB
ejb3-persistence.jar 49KB
spring-beans-3.2.4.RELEASE.jar 594KB
jboss-logging-3.1.0.GA.jar 59KB
commons-collections-3.1.jar 546KB
slf4j-jdk14-1.6.6.jar 9KB
slf4j-api-1.6.6.jar 26KB
xmlbeans-2.3.0.jar 2.54MB
gson-1.4.jar 162KB
commons-pool.jar 61KB
slf4j-ext-1.6.6.jar 41KB
springmvc.xml 3KB
web.xml 2KB
.project 1KB
共 72 条
- 1
资源评论
- 好好学习292018-09-24老哥,你这是什么资源,不是.NET版本的吗?
- m19002018-06-19下载来看看 学习一下
- 一分之一2019-10-29学习了,很不错
- Q12775166682019-05-23学习一下,实际上一般吧
- 飘渺天缘2018-08-23很不错,学习了
LINFENG_JAVA
- 粉丝: 2
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功