org.ggp.base.util.http.HttpRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alloy-ggp-base Show documentation
Show all versions of alloy-ggp-base Show documentation
A modified version of the GGP-Base library for Alloy.
package org.ggp.base.util.http;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Map;
/**
* HttpRequest is a helper class that encapsulates all of the code necessary
* for a match host to issue a long-lived HTTP request to a player, wait for
* the response, and return it. This is a key part of the GGP gaming protocol.
*
* @author schreib
*/
public final class HttpRequest
{
public static String issueRequest(String targetHost, int targetPort, String forPlayerName, String requestContent, int timeoutClock, Map extraHeaders) throws IOException {
Socket socket = new Socket();
InetAddress theHost = InetAddress.getByName(targetHost);
socket.connect(new InetSocketAddress(theHost.getHostAddress(), targetPort), 5000);
HttpWriter.writeAsClient(socket, theHost.getHostName(), requestContent, forPlayerName, extraHeaders);
String response = (timeoutClock < 0) ? HttpReader.readAsClient(socket) : HttpReader.readAsClient(socket, timeoutClock);
socket.close();
return response;
}
public static String issueRequest(String targetHost, int targetPort, String forPlayerName, String requestContent, int timeoutClock) throws IOException {
return issueRequest(targetHost, targetPort, forPlayerName, requestContent, timeoutClock, null);
}
}