Java httpserver se bloque lors de la réception des requêtes POST

Je suis en train d'écrire un simple serveur HTTP en Java qui peut traiter les requêtes POST. Alors que mon serveur reçoit correctement les OBTENIR, il s'écrase sur le POTEAU.

Ici est le serveur

public class RequestHandler {
    public static void main(String[] args) throws Exception {
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
        server.createContext("/requests", new MyHandler());
        server.setExecutor(null); //creates a default executor
        server.start();
    }

    static class MyHandler implements HttpHandler {
        public void handle(HttpExchange t) throws IOException {
            String response = "hello world";
            t.sendResponseHeaders(200, response.length());
            System.out.println(response);
            OutputStream os = t.getResponseBody();
            os.write(response.getBytes());
            os.close();
        }
    }
}

Et voici le code Java-je utiliser pour envoyer le POST

//HTTP POST request
private void sendPost() throws Exception {

    String url = "http://localhost:8080/requests";
    URL obj = new URL(url);
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

    //add reuqest header
    con.setRequestMethod("POST");
    con.setRequestProperty("User-Agent", USER_AGENT);
    con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

    String urlParameters = "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345";

    //Send post request
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();

    int responseCode = con.getResponseCode();
    System.out.println("\nSending 'POST' request to URL : " + url);
    System.out.println("Post parameters : " + urlParameters);
    System.out.println("Response Code : " + responseCode);

    BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();

    //print result
    System.out.println(response.toString());
}

Chaque fois que la requête POST se bloque sur cette ligne

HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

mais quand je change l'URL à celui fourni dans l'exemple où j'ai trouvé ce qu'il fonctionne.

Et quel est le message d'erreur sur le crash? Je soupçonne que le problème, c'est que vous n'êtes pas de la connexion en HTTPS, mais vous êtes casting pour HttpsURLConnection.
oui je crois que c'est ici l'erreur d'Exception dans le thread "main" java.lang.ClassCastException: le soleil.net.www.le protocole.http.HttpURLConnection ne peut pas être lancé à javax.net.le protocole ssl.HttpsURLConnection
si je change HTTPS, il ne plante plus, mais la demande se bloque indéfiniment, des suggestions?
Oui, lire le flux d'entrée dans votre serveur. Votre demande est en train d'essayer d'écrire, mais il n'y a personne sur l'autre extrémité qui les lit.

OriginalL'auteur Alex Brashear | 2015-02-04