package org.skywalking.apm.agent.core.client;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.HttpClients;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
/**
* This is a small application, test for http restful service.
* Use APACHE HttpClient as client, nanohttpd as server.
*
* @author wusheng
*/
public class HTTPRestServiceTestApp {
public static void main(String[] args) throws Exception {
CloseableHttpClient client = null;
Server server = null;
try {
HTTPRestServiceTestApp test = new HTTPRestServiceTestApp();
server = test.startServer();
client = test.send();
} finally {
if (client != null) {
client.close();
}
if (server != null) {
server.stop();
}
}
}
private CloseableHttpClient send() {
CloseableHttpClient httpclient = HttpClients.custom()
.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
.build();
HttpPost post = new HttpPost("http://localhost:7000/segments");
StringEntity entity = new StringEntity("[{'abc'}]", ContentType.APPLICATION_JSON);
post.setEntity(entity);
try {
CloseableHttpResponse httpResponse = httpclient.execute(post);
} catch (IOException e) {
e.printStackTrace();
}
return httpclient;
}
private Server startServer() throws Exception {
Server server = new Server(7000);
server.setHandler(new AbstractHandler() {
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
BufferedReader br = request.getReader();
String str, wholeStr = "";
while ((str = br.readLine()) != null) {
wholeStr += str;
}
response.setContentType("text/html; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
}
});
server.start();
return server;
}
}