/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package test.http; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.intel.mtwilson.v2.rpc.RpcUtil; import org.apache.http.HeaderElement; //import org.apache.commons.httpclient.HeaderElement; import org.apache.http.message.BasicHeaderValueParser; import org.apache.http.util.CharArrayBuffer; import org.apache.http.message.ParserCursor; import org.junit.Test; /** * * @author jbuhacoff */ public class ParseAcceptHeaderTest { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ParseAcceptHeaderTest.class); private static final ObjectMapper mapper = new ObjectMapper(); @Test public void testParseAcceptHeader() throws JsonProcessingException { String accept = "application/json;q=0.9, application/xml;q=0.8, text/plain, */*"; CharArrayBuffer buffer = new CharArrayBuffer(accept.length()); buffer.append(accept); BasicHeaderValueParser parser = new BasicHeaderValueParser(); HeaderElement[] headerElements = parser.parseElements(buffer, new ParserCursor(0,accept.length())); // xxx do we need accept.length - 1 ? log.debug("Header elements: {}", mapper.writeValueAsString(headerElements)); // sample output: // Header elements: [{"name":"application/json","value":null,"parameters":[{"name":"0.9","value":null}],"parameterCount":1},{"name":"application/xml","value":null,"parameters":[{"name":"0.8","value":null}],"parameterCount":1},{"name":"text/plain","value":null,"parameters":[],"parameterCount":0},{"name":"*/*","value":null,"parameters":[],"parameterCount":0}] } @Test public void testParseAcceptHeader2() throws Exception { String accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; String preferred = RpcUtil.getPreferredTypeFromAccept(accept); log.debug("Preferred: {}", preferred); } }