List of usage examples for com.google.common.net MediaType parse
public static MediaType parse(String input)
From source file:org.openqa.selenium.remote.server.Passthrough.java
@Override public void handle(HttpRequest req, HttpResponse resp) throws IOException { URL target = new URL(upstream.toExternalForm() + req.getUri()); HttpURLConnection connection = (HttpURLConnection) target.openConnection(); connection.setInstanceFollowRedirects(true); connection.setRequestMethod(req.getMethod().toString()); connection.setDoInput(true);//from ww w . ja va 2 s. c o m connection.setDoOutput(true); connection.setUseCaches(false); for (String name : req.getHeaderNames()) { if (IGNORED_REQ_HEADERS.contains(name.toLowerCase())) { continue; } for (String value : req.getHeaders(name)) { connection.addRequestProperty(name, value); } } // None of this "keep alive" nonsense. connection.setRequestProperty("Connection", "close"); if (POST == req.getMethod()) { // We always transform to UTF-8 on the way up. String contentType = req.getHeader("Content-Type"); contentType = contentType == null ? JSON_UTF_8.toString() : contentType; MediaType type = MediaType.parse(contentType); connection.setRequestProperty("Content-Type", type.withCharset(UTF_8).toString()); Charset charSet = req.getContentEncoding(); StringWriter logWriter = new StringWriter(); try (InputStream is = req.consumeContentStream(); Reader reader = new InputStreamReader(is, charSet); Reader in = new TeeReader(reader, logWriter); OutputStream os = connection.getOutputStream(); Writer out = new OutputStreamWriter(os, UTF_8)) { CharStreams.copy(in, out); } LOG.info("To upstream: " + logWriter.toString()); } resp.setStatus(connection.getResponseCode()); // clear response defaults. resp.setHeader("Date", null); resp.setHeader("Server", null); connection.getHeaderFields().entrySet().stream() .filter(entry -> entry.getKey() != null && entry.getValue() != null) .filter(entry -> !IGNORED_REQ_HEADERS.contains(entry.getKey().toLowerCase())).forEach(entry -> { entry.getValue().stream().filter(Objects::nonNull) .forEach(value -> resp.addHeader(entry.getKey(), value)); }); InputStream in = connection.getErrorStream(); if (in == null) { in = connection.getInputStream(); } String charSet = connection.getContentEncoding() != null ? connection.getContentEncoding() : UTF_8.name(); try (Reader reader = new InputStreamReader(in, charSet)) { String content = CharStreams.toString(reader); LOG.info("To downstream: " + content); resp.setContent(content.getBytes(charSet)); } finally { in.close(); } }
From source file:com.spotify.apollo.elide.ElideResource.java
private static boolean acceptHeaderHasNoJsonApiMediaTypeWithoutParameters(Request request) { Optional<String> header = headerValueIgnoreCase(request, "accept"); if (!header.isPresent()) { return false; }//w ww.ja v a 2 s . c o m Optional<String> mediaTypeWithoutParameter = Splitter.on(',').trimResults().splitToList(header.get()) .stream().filter(s -> MediaType.parse(s).parameters().isEmpty()).findAny(); return !mediaTypeWithoutParameter.isPresent(); }
From source file:com.proofpoint.http.client.SmileResponseHandler.java
@Override public T handle(Request request, Response response) { if (!successfulResponseCodes.contains(response.getStatusCode())) { throw new UnexpectedResponseException(String.format("Expected response code to be %s, but was %d: %s", successfulResponseCodes, response.getStatusCode(), response.getStatusMessage()), request, response);/*from w w w . j av a 2 s . c o m*/ } String contentType = response.getHeader(CONTENT_TYPE); if (contentType == null) { throw new UnexpectedResponseException("Content-Type is not set for response", request, response); } if (!MediaType.parse(contentType).is(MEDIA_TYPE_SMILE)) { throw new UnexpectedResponseException( "Expected application/x-jackson-smile response from server but got " + contentType, request, response); } try { JsonParser jsonParser = new SmileFactory().createParser(response.getInputStream()); ObjectMapper objectMapper = OBJECT_MAPPER_SUPPLIER.get(); // Important: we are NOT to close the underlying stream after // mapping, so we need to instruct parser: jsonParser.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE); return objectMapper.readValue(jsonParser, objectMapper.getTypeFactory().constructType(jsonCodec.getType())); } catch (InvalidFormatException e) { throw new IllegalArgumentException("Unable to create " + jsonCodec.getType() + " from SMILE response", e); } catch (IOException e) { throw new RuntimeException("Error reading SMILE response from server", e); } }
From source file:com.github.fge.jsonschema.syntax.checkers.hyperschema.MediaSyntaxChecker.java
@Override protected void checkValue(final Collection<JsonPointer> pointers, final MessageBundle bundle, final ProcessingReport report, final SchemaTree tree) throws ProcessingException { final JsonNode node = getNode(tree); JsonNode subNode;// ww w. j a va2 s .c om NodeType type; String value; subNode = node.path(BINARY_ENCODING_FIELDNAME); if (!subNode.isMissingNode()) { type = NodeType.getNodeType(subNode); value = subNode.textValue(); if (value == null) report.error(newMsg(tree, bundle, "draftv4.media.binaryEncoding.incorrectType") .put("expected", NodeType.STRING).putArgument("found", type)); else if (!BINARY_ENCODINGS.contains(value.toLowerCase())) report.error(newMsg(tree, bundle, "draftv4.media.binaryEncoding.invalid") .putArgument("value", value).putArgument("valid", BINARY_ENCODINGS)); } subNode = node.path(TYPE_FIELDNAME); if (subNode.isMissingNode()) return; type = NodeType.getNodeType(subNode); if (type != NodeType.STRING) { report.error(newMsg(tree, bundle, "draftv4.media.type.incorrectType").put("expected", NodeType.STRING) .putArgument("found", type)); return; } value = subNode.textValue(); try { MediaType.parse(value); } catch (IllegalArgumentException ignored) { report.error(newMsg(tree, bundle, "draftv4.media.type.notMediaType").putArgument("value", value)); } }
From source file:com.khannedy.sajikeun.servlet.AssetServlet.java
protected void doHttp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try {//from w ww .j a va2 s.c om final StringBuilder builder = new StringBuilder(req.getServletPath()); if (req.getPathInfo() != null) { builder.append(req.getPathInfo()); } final Asset asset = loadAsset(builder.toString()); if (asset == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return; } if (cache) { if (isCachedClientSide(req, asset)) { resp.sendError(HttpServletResponse.SC_NOT_MODIFIED); return; } } resp.setDateHeader(HttpHeaders.LAST_MODIFIED, asset.getLastModified()); resp.setHeader(HttpHeaders.ETAG, asset.getETag()); final String mimeTypeOfExtension = req.getServletContext().getMimeType(req.getRequestURI()); MediaType mediaType = DEFAULT_MEDIA_TYPE; if (mimeTypeOfExtension != null) { try { mediaType = MediaType.parse(mimeTypeOfExtension); if (defaultCharset != null && mediaType.is(MediaType.ANY_TEXT_TYPE)) { mediaType = mediaType.withCharset(defaultCharset); } } catch (IllegalArgumentException ignore) { } } resp.setContentType(mediaType.type() + '/' + mediaType.subtype()); if (mediaType.charset().isPresent()) { resp.setCharacterEncoding(mediaType.charset().get().toString()); } try (ServletOutputStream output = resp.getOutputStream()) { output.write(asset.getResource()); } } catch (RuntimeException | URISyntaxException ignored) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:com.spotify.apollo.elide.ElideResource.java
private static boolean contentTypeHasMediaTypeParameters(Request request) { Optional<String> header = headerValueIgnoreCase(request, "content-type"); return header.isPresent() && !MediaType.parse(header.get()).parameters().isEmpty(); }
From source file:com.linkedin.flashback.netty.builder.RecordedHttpMessageBuilder.java
/** * Get content type from headers//from ww w .j a v a 2 s. c om * * */ protected String getContentType() { String header = getHeader(HttpHeaders.CONTENT_TYPE); if (Strings.isNullOrEmpty(header)) { return DEFAULT_CONTENT_TYPE; } else { return MediaType.parse(header).withoutParameters().toString(); } }
From source file:keywhiz.FileAssetServlet.java
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try {//w w w . j a v a 2 s . c o m ByteSource asset = loadAsset(req.getRequestURI()); if (asset == null) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); return; } final String mimeTypeOfExtension = req.getServletContext().getMimeType(req.getRequestURI()); MediaType mediaType = DEFAULT_MEDIA_TYPE; if (mimeTypeOfExtension != null) { try { mediaType = MediaType.parse(mimeTypeOfExtension); if (mediaType.is(MediaType.ANY_TEXT_TYPE)) { mediaType = mediaType.withCharset(DEFAULT_CHARSET); } } catch (IllegalArgumentException ignore) { } } resp.setContentType(mediaType.type() + "/" + mediaType.subtype()); if (mediaType.charset().isPresent()) { resp.setCharacterEncoding(mediaType.charset().get().toString()); } try (OutputStream output = resp.getOutputStream()) { asset.copyTo(output); } } catch (RuntimeException ignored) { resp.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:net.morimekta.providence.server.ProvidenceServlet.java
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PProcessor processor = processorProvider.processorForRequest(req); try {//from w w w. j ava2s .com Serializer requestSerializer = serializerProvider.getDefault(); if (req.getContentType() != null) { requestSerializer = serializerProvider.getSerializer(req.getContentType()); if (requestSerializer == null) { resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unknown content-type: " + req.getContentType()); return; } } Serializer responseSerializer = requestSerializer; String acceptHeader = resp.getHeader("Accept"); if (acceptHeader != null) { String[] entries = acceptHeader.split("[,]"); for (String entry : entries) { if (entry.trim().isEmpty()) { continue; } try { MediaType mediaType = MediaType.parse(entry.trim()); Serializer tmp = serializerProvider .getSerializer(mediaType.type() + "/" + mediaType.subtype()); if (tmp != null) { responseSerializer = tmp; break; } } catch (IllegalArgumentException ignore) { // Ignore. Bad header input is pretty common. } } if (responseSerializer == null) { resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "No supported accept media-type: " + acceptHeader); return; } } MessageReader reader = new IOMessageReader(req.getInputStream(), requestSerializer); ByteArrayOutputStream baos = new ByteArrayOutputStream(); MessageWriter writer = new IOMessageWriter(baos, responseSerializer); // Create a new processor handler instance for each request, as // they may be request context dependent. E.g. depends on // information in header, servlet context etc. new DefaultProcessorHandler(processor).process(reader, writer); resp.setStatus(HttpServletResponse.SC_OK); resp.setContentType(responseSerializer.mimeType()); resp.setContentLength(baos.size()); resp.getOutputStream().write(baos.toByteArray()); } catch (Exception e) { LOGGER.error("Exception in service call for " + processor.getDescriptor().getQualifiedName(), e); resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Internal error: " + e.getMessage()); } }
From source file:org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions.java
/** * get a task editor extension for a specific task attribute * //from www . jav a 2s . com * @param taskRepository * @param taskAttribute * @return the extension, or null if there is none * @see #getTaskEditorExtension(TaskRepository); * @since 3.11 */ public static AbstractTaskEditorExtension getTaskEditorExtension(TaskRepository taskRepository, TaskAttribute taskAttribute) { init(); String input = taskAttribute.getMetaData().getMediaType(); if (input != null) { try { MediaType media = MediaType.parse(input); Multimap<String, String> parameters = media.parameters(); if (parameters.containsKey(MARKUP_KEY)) { Iterator<String> iter = parameters.get(MARKUP_KEY).iterator(); String markup = iter.next(); SortedSet<RegisteredTaskEditorExtension> extensions = getTaskEditorExtensions(); for (RegisteredTaskEditorExtension extension : extensions) { if (markup.equals(extension.getName())) { return extension.getExtension(); } } } } catch (IllegalArgumentException e) { StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, String.format("Unable to parse markup type for attribute %s", taskAttribute.toString()), //$NON-NLS-1$ e)); } } return getTaskEditorExtension(taskRepository); }