All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.ipokerface.weixin.request.http.message.XmlMessageConverter Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package cn.ipokerface.weixin.request.http.message;

import cn.ipokerface.weixin.request.http.HttpHeaders;
import cn.ipokerface.weixin.request.http.HttpResponse;
import cn.ipokerface.weixin.request.http.MimeType;
import cn.ipokerface.weixin.utils.FileUtils;
import cn.ipokerface.weixin.utils.RegexUtil;
import cn.ipokerface.weixin.xml.XmlFormatter;

import java.io.IOException;
import java.io.InputStream;

/**
 * Created by       PokerFace
 * Create Date      2019-12-27.
 * Email:           [email protected]
 * Version          1.0.0
 * 

* Description: */ public class XmlMessageConverter extends AbstractMessageConverter { public static final XmlMessageConverter GLOBAL = new XmlMessageConverter(); private static final String XML = "xml"; private static final int BRACKET = '<'; public XmlMessageConverter() { super(MimeType.APPLICATION_XML, MimeType.TEXT_XML, new MimeType("application", "*+xml")); } @Override public boolean canConvert(Class clazz, HttpResponse response) { if (!super.canConvert(clazz, response)) { String disposition = response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION); String fileName = RegexUtil.regexFileNameFromContentDispositionHeader(disposition); return (fileName != null && FileUtils.getFileExtension(fileName).equalsIgnoreCase(XML)); } return true; } @Override protected boolean supports(Class clazz, byte[] content) { return BRACKET == content[0]; } @Override protected T convertInternal(Class clazz, InputStream body) throws IOException { return XmlFormatter.fromXML(body, clazz); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy