您的足迹:首页 > JAVA >Spring MVC实现 xml和json数据的输入输出

Spring MVC实现 xml和json数据的输入输出

springMVC提供了RequestBody 和ResponseBody两个注解来接受http传递过来的body数据

需要作出的配置为spring的mvc配置文件添加


<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
			<bean class="org.springframework.http.converter.StringHttpMessageConverter">
				<constructor-arg value="UTF-8" />
			</bean>
<!-- 			<bean -->
<!-- 				class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> -->
<!-- 				<constructor-arg ref="jaxbMarshaller" /> -->
<!-- 				<property name="supportedMediaTypes" value="application/xml" /> -->
<!-- 			</bean> -->
			<bean
				class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter">
				
			</bean>
			<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
			<bean
				class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="prettyPrint" value="true" />
			</bean>

		</mvc:message-converters>


java代码


@RequestMapping(method=RequestMethod.POST)
	@ResponseBody
	public InputMessage acceptMessage(@RequestBody InputMessage inputMessage ){
		System.out.println(inputMessage.getContent());
		InputMessage message=new InputMessage();
		message.setFromUserName(inputMessage.getToUserName());
		message.setCreateTime(System.currentTimeMillis());
		message.setMsgType("text");
		message.setToUserName(inputMessage.getFromUserName());
		message.setContent(inputMessage.getContent());
		return message;
	}



@XmlRootElement(name="xml")
public class InputMessage implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@XmlElement
	private String ToUserName;
	@XmlElement
	private String FromUserName;
	@XmlElement
	private Long CreateTime;
	@XmlElement
	private String MsgType = "text";
	@XmlElement
	private Long MsgId;
	// 文本消息
	@XmlElement
	private String Content;
//	// 图片消息
//
//	private String PicUrl;
//	// 位置消息
//
//	private String LocationX;
//
//	private String LocationY;
//
//	private Long Scale;
//	
//	private String Label;
//	// 链接消息
//
//	private String Title;
//
//	private String Description;
//
//	private String URL;
//	// 语音信息
//
//	private String MediaId;
//
//	private String Format;
//
//	private String Recognition;
//	// 事件
//
//	private String Event;
//	private String EventKey;
//	private String Ticket;

	public String getToUserName() {
		return ToUserName;
	}

	public void setToUserName(String toUserName) {
		ToUserName = toUserName;
	}

	public String getFromUserName() {
		return FromUserName;
	}

	public void setFromUserName(String fromUserName) {
		FromUserName = fromUserName;
	}

	public Long getCreateTime() {
		return CreateTime;
	}

	public void setCreateTime(Long createTime) {
		CreateTime = createTime;
	}

	public String getMsgType() {
		return MsgType;
	}

	public void setMsgType(String msgType) {
		MsgType = msgType;
	}

	public Long getMsgId() {
		return MsgId;
	}

	public void setMsgId(Long msgId) {
		MsgId = msgId;
	}

	public String getContent() {
		return Content;
	}

public void setContent(String content) {
		Content = content;
	}
//
//	public String getPicUrl() {
//		return PicUrl;
//	}
//
//	public void setPicUrl(String picUrl) {
//		PicUrl = picUrl;
//	}
//
//	public String getLocationX() {
//		return LocationX;
//	}
//
//	public void setLocationX(String locationX) {
//		LocationX = locationX;
//	}
//
//	public String getLocationY() {
//		return LocationY;
//	}
//
//	public void setLocationY(String locationY) {
//		LocationY = locationY;
//	}
//
//	public Long getScale() {
//		return Scale;
//	}
//
//	public void setScale(Long scale) {
//		Scale = scale;
//	}
//
//	public String getLabel() {
//		return Label;
//	}
//
//	public void setLabel(String label) {
//		Label = label;
//	}
//
//	public String getTitle() {
//		return Title;
//	}
//
//	public void setTitle(String title) {
//		Title = title;
//	}
//
//	public String getDescription() {
//		return Description;
//	}
//
//	public void setDescription(String description) {
//		Description = description;
//	}
//
//	public String getURL() {
//		return URL;
//	}
//
//	public void setURL(String uRL) {
//		URL = uRL;
//	}
//
//	public String getEvent() {
//		return Event;
//	}
//
//	public void setEvent(String event) {
//		Event = event;
//	}
//
//	public String getEventKey() {
//		return EventKey;
//	}
//
//	public void setEventKey(String eventKey) {
//		EventKey = eventKey;
//	}
//
//	public String getMediaId() {
//		return MediaId;
//	}
//
//	public void setMediaId(String mediaId) {
//		MediaId = mediaId;
//	}
//
//	public String getFormat() {
//		return Format;
//	}
//
//	public void setFormat(String format) {
//		Format = format;
//	}
//
//	public String getRecognition() {
//		return Recognition;
//	}
//
//	public void setRecognition(String recognition) {
//		Recognition = recognition;
//	}
//
//	public String getTicket() {
//		return Ticket;
//	}
//
//	public void setTicket(String ticket) {
//		Ticket = ticket;
//	}
}


测试代码


public class MyTest {
	@Test
	public void test() {
		CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpPost method = new HttpPost(
				"http://localhost:8080/enterprise/weixin");
		try {
			StringEntity entity = new StringEntity("<xml>"
					+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
					+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
					+ "<CreateTime>1348831860</CreateTime>"
					+ "<MsgType><![CDATA[text]]></MsgType>"
					+ "<Content><![CDATA[this is a test]]></Content>"
					+ "<MsgId>1234567890123456</MsgId>" + "</xml>");
			entity.setContentType("application/xml");
			//method.addHeader("Accept","application/xml");
			method.setEntity(entity);
			CloseableHttpResponse result = httpClient.execute(method);
			//System.out.println(result.getStatusLine().getStatusCode());
			System.out.println(EntityUtils.toString(result.getEntity()));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


本博客所有文章如无特别注明均为原创。作者:小天复制或转载请以超链接形式注明转自 钟天才的博客
原文地址《Spring MVC实现 xml和json数据的输入输出

相关推荐

网友评论(0)