下面列出了怎么用org.apache.http.message.BasicHeaderValueParser的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Returns a list of {@link org.apache.http.NameValuePair NameValuePairs} as parsed.
*
* @param s text to parse.
* @since 4.2
*/
public static List<NameValuePair> parse(final String s) {
if (s == null) {
return Collections.emptyList();
}
BasicHeaderValueParser parser = BasicHeaderValueParser.DEFAULT;
CharArrayBuffer buffer = new CharArrayBuffer(s.length());
buffer.append(s);
ParserCursor cursor = new ParserCursor(0, buffer.length());
List<NameValuePair> list = new ArrayList<NameValuePair>();
while (!cursor.atEnd()) {
NameValuePair nvp = parser.parseNameValuePair(buffer, cursor, DELIM);
if (nvp.getName().length() > 0) {
list.add(new BasicNameValuePair(nvp.getName(), nvp.getValue()));
}
}
return list;
}
public void consume(Map<String, String> result) throws IOException {
if (httpResponse.getEntity() != null) {
if (responseCharacterSet == null || responseCharacterSet.isEmpty()) {
Header contentType = httpResponse.getEntity().getContentType();
if (contentType != null) {
String value = contentType.getValue();
NameValuePair[] nameValuePairs = BasicHeaderValueParser.parseParameters(value, BasicHeaderValueParser.INSTANCE);
for (NameValuePair nameValuePair : nameValuePairs) {
if (nameValuePair.getName().equalsIgnoreCase("charset")) {
responseCharacterSet = nameValuePair.getValue();
break;
}
}
}
if (responseCharacterSet == null || responseCharacterSet.isEmpty()) {
responseCharacterSet = Consts.ISO_8859_1.name();
}
}
consumeResponseContent(result);
}
}
/**
* Returns a list of {@link org.apache.http.NameValuePair NameValuePairs} as parsed.
*
* @param s text to parse.
* @since 4.2
*/
public static List<NameValuePair> parse(final String s) {
if (s == null) {
return Collections.emptyList();
}
BasicHeaderValueParser parser = BasicHeaderValueParser.DEFAULT;
CharArrayBuffer buffer = new CharArrayBuffer(s.length());
buffer.append(s);
ParserCursor cursor = new ParserCursor(0, buffer.length());
List<NameValuePair> list = new ArrayList<NameValuePair>();
while (!cursor.atEnd()) {
NameValuePair nvp = parser.parseNameValuePair(buffer, cursor, DELIM);
if (nvp.getName().length() > 0) {
list.add(new BasicNameValuePair(nvp.getName(), nvp.getValue()));
}
}
return list;
}
/**
* Returns a list of {@link NameValuePair NameValuePairs} as deserialized from the given string
* using the given character encoding.
*
* @param s
* text to parse.
* @param charset
* Encoding to use when decoding the parameters.
*
* @since 4.2
*/
public static List<NameValuePair> parse (final String s, final Charset charset) {
if (s == null) {
return Collections.emptyList();
}
BasicHeaderValueParser deserializer = BasicHeaderValueParser.DEFAULT;
CharArrayBuffer buffer = new CharArrayBuffer(s.length());
buffer.append(s);
ParserCursor cursor = new ParserCursor(0, buffer.length());
List<NameValuePair> list = new ArrayList<NameValuePair>();
while (!cursor.atEnd()) {
NameValuePair nvp = deserializer.parseNameValuePair(buffer, cursor, DELIM);
if (nvp.getName().length() > 0) {
list.add(new BasicNameValuePair(
decodeFormFields(nvp.getName(), charset),
decodeFormFields(nvp.getValue(), charset)));
}
}
return list;
}
public String getContentTypeCharset(String defaultCharset) {
List<String> values = getHeader(Http.Headers.CONTENT_TYPE);
if (values!=null) {
for (String value: values) {
HeaderElement[] headerElements = BasicHeaderValueParser.parseElements(value, (HeaderValueParser) null);
if (headerElements!=null && headerElements.length>0) {
NameValuePair charsetPair = headerElements[0].getParameterByName("charset");
if (charsetPair!=null) {
return charsetPair.getValue();
}
}
}
}
return defaultCharset;
}
/**
* Protected constructors for implementing classes. This should be called first with the context received from
* AWS Lambda
* @param lambdaContext The Lambda function context. This object is used for utility methods such as log
*/
AwsHttpServletRequest(Context lambdaContext) {
this.lambdaContext = lambdaContext;
attributes = new HashMap<>();
headerParser = new BasicHeaderValueParser();
setAttribute(DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.REQUEST);
}
/**
* Parses textual representation of <code>Content-Type</code> value.
*
* @param s text
* @return content type
* @throws ParseException if the given text does not represent a valid
* <code>Content-Type</code> value.
*/
public static ContentType parse(
final String s) throws ParseException, UnsupportedCharsetException {
if (s == null) {
throw new IllegalArgumentException("Content type may not be null");
}
HeaderElement[] elements = BasicHeaderValueParser.parseElements(s, null);
if (elements.length > 0) {
return create(elements[0]);
} else {
throw new ParseException("Invalid content type: " + s);
}
}
private Stream<NameValuePair> extractValueParameters(String value) {
return Arrays.stream(BasicHeaderValueParser.parseParameters(value, BasicHeaderValueParser.INSTANCE));
}