下面列出了org.apache.http.client.utils.URIBuilder#addParameters ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private URI buildUrl(String subPath, List<NameValuePair> queryParams)
{
if(serverConfig.getSubpathPrefix()!=null) {
subPath = serverConfig.getSubpathPrefix()+"/"+subPath;
}
URIBuilder uB= new URIBuilder()
.setScheme(serverConfig.isUseHTTPS() ? "https" : "http")
.setHost(serverConfig.getServerName())
.setPort(serverConfig.getPort())
.setUserInfo(serverConfig.getUserName(), serverConfig.getPassword())
.setPath(subPath);
if (queryParams != null)
{
uB.addParameters(queryParams);
}
try {
return uB.build();
} catch (URISyntaxException e) {
throw new NextcloudApiException(e);
}
}
private static IRI createTypePropertiesUri(final ImmutableMap<RyaIRI, ImmutableMap<RyaIRI, Property>> typeProperties) throws SmartUriException {
final List<NameValuePair> nameValuePairs = new ArrayList<>();
for (final Entry<RyaIRI, ImmutableMap<RyaIRI, Property>> typeProperty : typeProperties.entrySet()) {
final RyaIRI type = typeProperty.getKey();
final Map<RyaIRI, Property> propertyMap = typeProperty.getValue();
final IRI typeUri = createIndividualTypeWithPropertiesUri(type, propertyMap);
final String keyString = type.getDataType().getLocalName();
final String valueString = typeUri.getLocalName();
nameValuePairs.add(new BasicNameValuePair(keyString, valueString));
}
final URIBuilder uriBuilder = new URIBuilder();
uriBuilder.addParameters(nameValuePairs);
String uriString;
try {
final java.net.URI uri = uriBuilder.build();
final String queryString = uri.getRawSchemeSpecificPart();
uriString = "urn:test" + queryString;
} catch (final URISyntaxException e) {
throw new SmartUriException("Unable to create type properties for the Smart URI", e);
}
return VF.createIRI(uriString);
}
private static IRI createTypeMapUri(final List<RyaIRI> types) throws SmartUriException {
final List<NameValuePair> nameValuePairs = new ArrayList<>();
for (final RyaIRI type : types) {
final String shortName = getShortNameForType(type);
nameValuePairs.add(new BasicNameValuePair(type.getData(), shortName));
}
final URIBuilder uriBuilder = new URIBuilder();
uriBuilder.addParameters(nameValuePairs);
String uriString;
try {
final java.net.URI uri = uriBuilder.build();
final String queryString = uri.getRawSchemeSpecificPart();
uriString = ENTITY_TYPE_MAP_URN + queryString;
} catch (final URISyntaxException e) {
throw new SmartUriException("Unable to create type properties for the Smart URI", e);
}
return VF.createIRI(uriString);
}
private static URI createBasicUri(String url, Map<String, String[]> params) {
List<NameValuePair> postParameters = new ArrayList<>();
if (params != null) {
params.forEach((key, values) -> Arrays.stream(values).forEach(value -> {
postParameters.add(new BasicNameValuePair(key, value));
}));
}
try {
URIBuilder uriBuilder = new URIBuilder(url);
uriBuilder.addParameters(postParameters);
return uriBuilder.build();
} catch (URISyntaxException e) {
return null;
}
}
private URI encodeQueryParameters(URI url) throws UnsupportedEncodingException, URISyntaxException {
URIBuilder uri = new URIBuilder(url);
ArrayList<NameValuePair> pairs = new ArrayList<>(uri.getQueryParams().size());
for(NameValuePair pair : uri.getQueryParams()) {
String paramValue = pair.getValue(); //May be NULL
if(StringUtils.isNotEmpty(paramValue)) {
paramValue = URLEncoder.encode(paramValue, getCharSet()); //Only encode if the value is not null
}
pairs.add(new BasicNameValuePair(pair.getName(), paramValue));
}
if(pairs.size() > 0) {
uri.clearParameters();
uri.addParameters(pairs);
}
return uri.build();
}
protected URI getRequestURI(Map<String, Object> parameters)
{
String url = getURL(parameters);
if (url == null)
{
throw
new JRRuntimeException(
EXCEPTION_MESSAGE_KEY_NO_HTTP_URL_SET,
(Object[])null);
}
try
{
URIBuilder uriBuilder = new URIBuilder(url);
List<NameValuePair> urlParameters = collectUrlParameters(parameters);
if (!urlParameters.isEmpty())
{
uriBuilder.addParameters(urlParameters);
}
URI uri = uriBuilder.build();
if (log.isDebugEnabled())
{
log.debug("request URI " + uri);
}
return uri;
}
catch (URISyntaxException e)
{
throw new JRRuntimeException(e);
}
}
private static IRI createIndividualTypeWithPropertiesUri(final RyaIRI type, final Map<RyaIRI, Property> map) throws SmartUriException {
final List<NameValuePair> nameValuePairs = new ArrayList<>();
for (final Entry<RyaIRI, Property> entry : map.entrySet()) {
final RyaIRI key = entry.getKey();
final Property property = entry.getValue();
final RyaType ryaType = property.getValue();
final String keyString = (VF.createIRI(key.getData())).getLocalName();
final Value value = RyaToRdfConversions.convertValue(ryaType);
final String valueString = value.stringValue();
nameValuePairs.add(new BasicNameValuePair(keyString, valueString));
}
final URIBuilder uriBuilder = new URIBuilder();
uriBuilder.addParameters(nameValuePairs);
String uriString;
try {
final java.net.URI uri = uriBuilder.build();
final String queryString = uri.getRawSchemeSpecificPart();
uriString = type.getData()/*VF.createIRI(type.getData()).getLocalName()*/ + queryString;
} catch (final URISyntaxException e) {
throw new SmartUriException("Unable to create type URI with all its properties for the Smart URI", e);
}
return VF.createIRI(uriString);
}