org.springframework.http.HttpMethod#valueOf ( )源码实例Demo

下面列出了org.springframework.http.HttpMethod#valueOf ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: bbs   文件: MyAntPathRequestMatcher.java
/**
 * Creates a matcher with the supplied pattern which will match the
 * specified Http method
 *
 * @param pattern 模式
 *            the ant pattern to use for matching
 * @param httpMethod HTTP方法
 *            the HTTP method. The {@code matches} method will return false
 *            if the incoming request doesn't doesn't have the same method.
 * @param caseSensitive 区分大小写
 *            true if the matcher should consider case, else false
 */
public MyAntPathRequestMatcher(String pattern, String httpMethod, boolean caseSensitive) {
    Assert.hasText(pattern, "Pattern cannot be null or empty");
    this.caseSensitive = caseSensitive;

    if (pattern.equals(MATCH_ALL) || pattern.equals("**")) {
        pattern = MATCH_ALL;
        matcher = null;
    } else {
        if(!caseSensitive) {
            pattern = pattern.toLowerCase();
        }

        // If the pattern ends with {@code /**} and has no other wildcards, then optimize to a sub-path match
        if (pattern.endsWith(MATCH_ALL) && pattern.indexOf('?') == -1 &&
                pattern.indexOf("*") == pattern.length() - 2) {
            matcher = new SubpathMatcher(pattern.substring(0, pattern.length() - 3));
        } else {
            matcher = new SpringAntMatcher(pattern);
        }
    }

    this.pattern = pattern;
    this.httpMethod = StringUtils.hasText(httpMethod) ? HttpMethod.valueOf(httpMethod) : null;
}
 
源代码2 项目: bbs   文件: MyAntPathRequestMatcher.java
/**
 * Returns true if the configured pattern (and HTTP-Method) match those of the supplied request.
 * 修改
 * @param request the request to match against. The ant pattern will be matched against the
 *    {@code servletPath} + {@code pathInfo} of the request.
 */
public boolean matches(HttpServletRequest request) {
	
	
    if (httpMethod != null && request.getMethod() != null && httpMethod != HttpMethod.valueOf(request.getMethod())) {
        if (logger.isDebugEnabled()) {
            logger.debug("Request '" + request.getMethod() + " " + getRequestPath(request) + "'"
                    + " doesn't match '" + httpMethod  + " " + pattern);
        }

        return false;
    }

    if (pattern.equals(MATCH_ALL)) {
        if (logger.isDebugEnabled()) {
            logger.debug("Request '" + getRequestPath(request) + "' matched by universal pattern '/**'");
        }

        return true;
    }
    
    //删除URL的路径和虚拟目录
    String url = UrlUtils.buildRequestUrl(request);
    return pathMatcher.match(pattern, url);
}
 
源代码3 项目: cucumber-rest-steps   文件: RestSteps.java
private void callWithFile(String httpMethodString, String path, String file, Resource resource) {
  HttpMethod httpMethod = HttpMethod.valueOf(httpMethodString.toUpperCase());

  if (httpMethod.equals(HttpMethod.GET)) {
    throw new IllegalArgumentException("You can't submit a file in a GET call");
  }

  MultipartBodyBuilder builder = new MultipartBodyBuilder();
  builder.part(file, resource);

  responseSpec = webClient.method(httpMethod)
      .uri(path)
      .syncBody(builder.build())
      .exchange();
  expectBody = null;
}
 
@Nullable
private HttpMethod getOverride(final RequestArguments arguments) {
    final Map<String, List<String>> headers = arguments.getHeaders();
    final String name = "X-HTTP-Method-Override";
    final List<String> overrides = headers.getOrDefault(name, emptyList());

    @Nullable final String override = overrides.stream().findFirst().orElse(null);

    if (override == null) {
        return null;
    }

    try {
        return HttpMethod.valueOf(override);
    } catch (final IllegalArgumentException e) {
        log.warn("Received invalid method in {} header: \"{}\"", name, override);
        return null;
    }
}
 
源代码5 项目: cloudbreak   文件: Method.java
public static Method build(String methodName) {
    HttpMethod httpMethod = null;
    try {
        httpMethod = HttpMethod.valueOf(methodName.toUpperCase());
    } catch (IllegalArgumentException e) {
        for (HttpMethod checkMethod : HttpMethod.values()) {
            if (methodName.startsWith(checkMethod.name().toLowerCase())) {
                httpMethod = checkMethod;
                break;
            }
        }
    }
    if (httpMethod == null) {
        throw new IllegalArgumentException(methodName + " method name should start with http method (get, post, ...)");
    }
    return new Method(httpMethod, methodName);
}
 
@SuppressWarnings("unchecked")
private Set<PluginPackageEntityDto> pullDynamicDataModelFromPlugin(PluginPackageDataModel dataModel) {
    Map<String, Object> parametersMap = new HashMap<>();
    String gatewayUrl = applicationProperties.getGatewayUrl();
    parametersMap.put("gatewayUrl", gatewayUrl);
    parametersMap.put("packageName", dataModel.getPackageName());
    String updatePath = dataModel.getUpdatePath();
    parametersMap.put("dataModelUrl", updatePath.startsWith("/") ? updatePath.substring(1) : updatePath);

    List<PluginPackageEntityDto> dynamicPluginPackageEntities = Collections.EMPTY_LIST;
    try {
        HttpHeaders httpHeaders = new HttpHeaders();
        UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromUriString(dataModelUrl);
        UriComponents uriComponents = uriComponentsBuilder.buildAndExpand(parametersMap);
        HttpMethod method = HttpMethod.valueOf(dataModel.getUpdateMethod());
        httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpEntity<Object> requestEntity = new HttpEntity<>(httpHeaders);

        ResponseEntity<String> response = restTemplate.exchange(uriComponents.toString(), method, requestEntity, String.class);
        if (StringUtils.isBlank(response.getBody()) || response.getStatusCode().isError()) {
            throw new WecubeCoreException(response.toString());
        }
        CommonResponseDto responseDto = JsonUtils.toObject(response.getBody(), CommonResponseDto.class);
        if (!CommonResponseDto.STATUS_OK.equals(responseDto.getStatus())) {
            String msg = String.format("Request error! The error message is [%s]", responseDto.getMessage());
            logger.error(msg);
            throw new WecubeCoreException(msg);
        }
        dynamicPluginPackageEntities = JsonUtils.toList(JsonUtils.toJsonString(responseDto.getData()), PluginPackageEntityDto.class);
    } catch (IOException ex) {
        logger.error(ex.getMessage());
    }
    return Sets.newLinkedHashSet(dynamicPluginPackageEntities);
}
 
源代码7 项目: stategen   文件: OperationHttpMethodReader.java
@Override
public void apply(OperationContext context) {
    HandlerMethod handlerMethod = context.getHandlerMethod();

    ApiOperation apiOperationAnnotation = handlerMethod.getMethodAnnotation(ApiOperation.class);
    HttpMethod httpMethod = null;
    if (apiOperationAnnotation != null && StringUtils.hasText(apiOperationAnnotation.httpMethod())) {
        String apiMethod = apiOperationAnnotation.httpMethod();
        try {
            RequestMethod.valueOf(apiMethod);
        } catch (IllegalArgumentException e) {
            log.error("Invalid http method: " + apiMethod + "Valid ones are [" + RequestMethod.values() + "]", e);
        }
        httpMethod = HttpMethod.valueOf(apiMethod);
    } else {
        RequestMapping requestMapping = handlerMethod.getMethodAnnotation(RequestMapping.class);
        RequestMethod[] methods = requestMapping.method();
        if (CollectionUtil.isNotEmpty(methods)) {
            httpMethod = HttpMethod.valueOf(CollectionUtil.getFirst(methods).toString());
        }
    }

    if (httpMethod == null) {
        httpMethod = HttpMethod.GET;
    }

    context.operationBuilder().method(httpMethod);
}
 
源代码8 项目: cucumber-rest-steps   文件: RestSteps.java
private void call(String httpMethodString, URI uri, Object requestObj) throws JSONException {
  HttpMethod httpMethod = HttpMethod.valueOf(httpMethodString.toUpperCase());

  if (httpMethod.equals(HttpMethod.GET) && requestObj != null) {
    throw new IllegalArgumentException("You can't pass data in a GET call");
  }

  final String path = uri.toString();
  if (path.contains("$.")) {
    initExpectBody();
    Pattern pattern = Pattern.compile("(((\\$.*)\\/.*)|(\\$.*))");
    Matcher matcher = pattern.matcher(path);
    assertTrue(matcher.find());
    final String jsonPath = matcher.group(0);
    final byte[] responseBody = expectBody.jsonPath(jsonPath).exists().returnResult().getResponseBody();
    final String value = ((JSONObject) JSONParser.parseJSON(new String(responseBody))).getString(jsonPath.replace("$.", ""));
    uri = URI.create(path.replace(jsonPath, value));
  }

  final RequestBodySpec requestBodySpec = webClient.method(httpMethod).uri(uri);
  if (requestObj != null) {
    requestBodySpec.syncBody(requestObj);
    requestBodySpec.contentType(MediaType.APPLICATION_JSON);
  }

  if (headers != null) {
    headers.forEach((key, value) -> requestBodySpec.header(key, value.toArray(new String[0])));
  }

  responseSpec = requestBodySpec.exchange();
  expectBody = null;
  headers = null;
}
 
源代码9 项目: activiti6-boot2   文件: CustomAntPathMatcher.java
@Override
public boolean matches(HttpServletRequest request) {
    if(httpMethodUsed) {
        // Check if the method actually exists
        try {
            HttpMethod.valueOf(request.getMethod());
        } catch(IllegalArgumentException iae) {
            // Since it's not possible to register matchers for an unknown method, we know the path/method will
            // never match. Return false to prevent an exception in the wrapped matcher
            return false;
        }
    }
    return wrapped.matches(request);
}
 
/**
 * 根据是否实现了某个接口,返回侦听
 *
 * @param serviceCode
 * @return
 * @since 1.8
 */
public static List<ServiceDataFlowListener> getListeners(String serviceCode, String httpMethod) {

    Assert.hasLength(serviceCode, "获取需要发布的事件处理侦听时,传递事件为空,请检查");

    String needCachedServiceCode = serviceCode + httpMethod;
    //先从缓存中获取,为了提升效率
    if (cacheListenersMap.containsKey(needCachedServiceCode)) {
        return cacheListenersMap.get(needCachedServiceCode);
    }

    List<ServiceDataFlowListener> dataFlowListeners = new ArrayList<ServiceDataFlowListener>();
    for (String listenerBeanName : getListeners()) {
        ServiceDataFlowListener listener = ApplicationContextFactory.getBean(listenerBeanName, ServiceDataFlowListener.class);
        if (serviceCode.equals(listener.getServiceCode())
                && listener.getHttpMethod() == HttpMethod.valueOf(httpMethod)) {
            dataFlowListeners.add(listener);
        }
        //特殊处理 透传类接口
        if (ServiceCodeConstant.SERVICE_CODE_DO_SERVICE_TRANSFER.equals(listener.getServiceCode())
                && ServiceCodeConstant.SERVICE_CODE_DO_SERVICE_TRANSFER.equals(serviceCode)) {
            dataFlowListeners.add(listener);
        }
    }

    //这里排序
    DataFlowListenerOrderComparator.sort(dataFlowListeners);


    //将数据放入缓存中
    if (dataFlowListeners.size() > 0) {
        cacheListenersMap.put(needCachedServiceCode, dataFlowListeners);
    }
    return dataFlowListeners;
}
 
源代码11 项目: flowable-engine   文件: CustomAntPathMatcher.java
@Override
public boolean matches(HttpServletRequest request) {
    if (httpMethodUsed) {
        // Check if the method actually exists
        try {
            HttpMethod.valueOf(request.getMethod());
        } catch (IllegalArgumentException iae) {
            // Since it's not possible to register matchers for an unknown method, we know the path/method will
            // never match. Return false to prevent an exception in the wrapped matcher
            return false;
        }
    }
    return wrapped.matches(request);
}
 
源代码12 项目: davos   文件: HttpAPICallAction.java
public HttpAPICallAction(String url, String method, String contentType, String body) {

        this.url = url;
        this.method = HttpMethod.valueOf(method);
        this.contentType = contentType;
        this.body = body;
    }
 
源代码13 项目: hawkbit   文件: DosFilter.java
@Override
protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response,
        final FilterChain filterChain) throws ServletException, IOException {

    if (!shouldInclude(request)) {
        filterChain.doFilter(request, response);
        return;
    }

    boolean processChain;

    final String ip = IpUtil.getClientIpFromRequest(request, forwardHeader).getHost();

    if (checkIpFails(ip)) {
        processChain = handleMissingIpAddress(response);
    } else {
        processChain = checkAgainstBlacklist(response, ip);

        if (processChain && (whitelist == null || !whitelist.matcher(ip).find())) {
            // read request
            if (HttpMethod.valueOf(request.getMethod()) == HttpMethod.GET) {
                processChain = handleReadRequest(response, ip);
            }
            // write request
            else {
                processChain = handleWriteRequest(response, ip);
            }
        }
    }

    if (processChain) {
        filterChain.doFilter(request, response);
    }
}
 
源代码14 项目: govpay   文件: HardeningAntPathRequestMatcher.java
/**
 * Creates a matcher with the supplied pattern which will match the specified Http
 * method
 *
 * @param pattern the ant pattern to use for matching
 * @param httpMethod the HTTP method. The {@code matches} method will return false if
 * the incoming request doesn't doesn't have the same method.
 * @param caseSensitive true if the matcher should consider case, else false
 */
public HardeningAntPathRequestMatcher(String pattern, String httpMethod,
		boolean caseSensitive) {
	Assert.hasText(pattern, "Pattern cannot be null or empty");
	this.caseSensitive = caseSensitive;

	if (pattern.equals(MATCH_ALL) || pattern.equals("**")) {
		pattern = MATCH_ALL;
		this.matcher = null;
	}
	else {
		// If the pattern ends with {@code /**} and has no other wildcards or path
		// variables, then optimize to a sub-path match
		if (pattern.endsWith(MATCH_ALL)
				&& (pattern.indexOf('?') == -1 && pattern.indexOf('{') == -1
						&& pattern.indexOf('}') == -1)
				&& pattern.indexOf("*") == pattern.length() - 2) {
			this.matcher = new SubpathMatcher(
					pattern.substring(0, pattern.length() - 3), caseSensitive);
		}
		else {
			this.matcher = new SpringAntMatcher(pattern, caseSensitive);
		}
	}

	this.pattern = pattern;
	this.httpMethod = StringUtils.hasText(httpMethod) ? HttpMethod.valueOf(httpMethod)
			: null;
}
 
源代码15 项目: govpay   文件: HardeningAntPathRequestMatcher.java
/**
 * Provides a save way of obtaining the HttpMethod from a String. If the method is
 * invalid, returns null.
 *
 * @param method the HTTP method to use.
 *
 * @return the HttpMethod or null if method is invalid.
 */
private static HttpMethod valueOf(String method) {
	try {
		return HttpMethod.valueOf(method);
	}
	catch (IllegalArgumentException e) {
	}

	return null;
}
 
源代码16 项目: spring-openapi   文件: OperationsTransformer.java
private HttpMethod getSpringMethod(RequestMethod[] method) {
	if (method == null || method.length == 0) {
		throw new IllegalArgumentException("HttpMethod must be specified on RequestMapping annotated method");
	}
	return HttpMethod.valueOf(method[0].name());
}
 
源代码17 项目: spring-openapi   文件: OperationsTransformer.java
private HttpMethod getSpringMethod(RequestMethod method) {
	if (method == null) {
		throw new IllegalArgumentException("HttpMethod must be specified on RequestMapping annotated method");
	}
	return HttpMethod.valueOf(method.name());
}
 
源代码18 项目: riptide   文件: StreamingApacheClientHttpRequest.java
public HttpMethod getMethod() {
    return HttpMethod.valueOf(getMethodValue());
}
 
源代码19 项目: riptide   文件: BufferingApacheClientHttpRequest.java
public HttpMethod getMethod() {
    return HttpMethod.valueOf(getMethodValue());
}
 
protected HttpMethod mapStringToHttpMethod(String method) {
	return HttpMethod.valueOf(method);
}