下面列出了怎么用org.apache.http.message.BasicRequestLine的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Creates a mock {@link IncomingRequest}.
*
* @param uri
* the uri
* @return the {@link IncomingRequest}
*/
public static IncomingRequest.Builder createIncomingRequest(String uri) {
HttpHost httpHost = UriUtils.extractHost(uri);
String scheme = httpHost.getSchemeName();
String host = httpHost.getHostName();
int port = httpHost.getPort();
RequestLine requestLine = new BasicRequestLine("GET", uri, HttpVersion.HTTP_1_1);
IncomingRequest.Builder builder = IncomingRequest.builder(requestLine);
builder.setContext(new ContainerRequestContext() {
});
// Remove default ports
if (port == -1 || (port == Http.DEFAULT_HTTP_PORT && "http".equals(scheme))
|| (port == Http.DEFAULT_HTTPS_PORT && "https".equals(scheme))) {
builder.addHeader("Host", host);
} else {
builder.addHeader("Host", host + ":" + port);
}
builder.setSession(new MockSession());
return builder;
}
public OutgoingRequest(String method, String uri, ProtocolVersion version, DriverRequest originalRequest,
RequestConfig requestConfig, OutgoingRequestContext context) {
super(method, uri, version);
requestLine = new BasicRequestLine(method, uri, version);
this.requestConfig = requestConfig;
this.context = context;
this.originalRequest = originalRequest;
}
@Override
public RequestLine getRequestLine() {
return new BasicRequestLine(
method,
uri != null ? uri.toASCIIString() : "/",
HttpVersion.HTTP_1_1);
}
public HttpRequest(final String method, final String url) {
this.requestLine = new BasicRequestLine(method, url, PROTOCOL_VERSION);
}
public HttpRequest(final int maxNumberOfHeaders, final int maxLenghtOfHeader, final int pos) {
this.requestLine = new BasicRequestLine("GET", RandomStringUtils.randomAlphabetic(RNG.nextInt(maxLenghtOfHeader) + 1), PROTOCOL_VERSION);
Header[] headers = randomHeaders(maxNumberOfHeaders, maxLenghtOfHeader);
headers[RNG.nextInt(headers.length)] = new BasicHeader("Position", Integer.toString(pos));
this.setHeaders(headers);
}
private void writeRequestLine(URL url, Writer writer, BasicLineFormatter formatter) throws IOException {
BasicRequestLine requestLine = new BasicRequestLine(request.method().getValue(), url.getFile(), new ProtocolVersion("HTTP", 1, 1));
writer.append(BasicLineFormatter.formatRequestLine(requestLine, formatter)).append("\r\n");
}
private void mockRequest(String url) throws Exception {
when(request.getURI()).thenReturn(new URI(url));
when(request.getRequestLine()).thenReturn(new BasicRequestLine("GET", url, new ProtocolVersion("HTTP", 1, 1)));
when(request.getAllHeaders()).thenReturn(new Header[]{});
when(request.getOriginal()).thenReturn(request);
}
public void setUri(String uri) {
requestLine = new BasicRequestLine(requestLine.getMethod(), uri, requestLine.getProtocolVersion());
}
public static Builder builder(String uri) {
return new Builder(new BasicRequestLine("GET", uri, HttpVersion.HTTP_1_1));
}
public IncomingRequest create(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws IOException {
HttpServletRequestContext context =
new HttpServletRequestContext(request, response, servletContext, filterChain);
// create request line
String uri =
UriUtils.createURI(request.getScheme(), request.getServerName(), request.getServerPort(),
request.getRequestURI(), request.getQueryString(), null);
ProtocolVersion protocolVersion = BasicLineParser.parseProtocolVersion(request.getProtocol(), null);
IncomingRequest.Builder builder =
IncomingRequest.builder(new BasicRequestLine(request.getMethod(), uri, protocolVersion));
builder.setContext(context);
// copy headers
@SuppressWarnings("rawtypes")
Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
@SuppressWarnings("rawtypes")
Enumeration values = request.getHeaders(name);
while (values.hasMoreElements()) {
String value = (String) values.nextElement();
builder.addHeader(name, value);
}
}
// create entity
HttpServletRequestEntity entity = new HttpServletRequestEntity(request);
builder.setEntity(entity);
builder.setRemoteAddr(request.getRemoteAddr());
builder.setRemoteUser(request.getRemoteUser());
HttpSession session = request.getSession(false);
if (session != null) {
builder.setSessionId(session.getId());
}
builder.setUserPrincipal(request.getUserPrincipal());
// Copy cookies
// As cookie header contains only name=value so we don't need to copy
// all attributes!
javax.servlet.http.Cookie[] src = request.getCookies();
if (src != null) {
for (Cookie c : src) {
BasicClientCookie dest = new BasicClientCookie(c.getName(), c.getValue());
builder.addCookie(dest);
}
}
builder.setSession(new HttpServletSession(request));
builder.setContextPath(request.getContextPath());
return builder.build();
}