/* * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
/* * @test * @bug 4635698 * @summary Check that HttpURLConnection.getResponseCode returns -1 for * malformed status-lines in the http response.
*/ import java.net.*; import java.io.*; importstatic java.net.Proxy.NO_PROXY;
/* * Simple http server used by test * * GET /<n> HTTP/1.x results in http response with the status line * set to geTests()[<n>][0] -- eg: GET /2 results in a response of * "HTTP/1.1 404 "
*/ staticclass HttpServer implements Runnable { final ServerSocket ss; volatileboolean shutdown;
public HttpServer() { try {
InetAddress loopback = InetAddress.getLoopbackAddress();
ss = new ServerSocket();
ss.bind(new InetSocketAddress(loopback, 0));
} catch (IOException ioe) { thrownew Error("Unable to create ServerSocket: " + ioe);
}
}
BufferedReader in = new BufferedReader( new InputStreamReader(
s.getInputStream()));
String req = in.readLine(); int pos1 = req.indexOf(' '); int pos2 = req.indexOf(' ', pos1+1);
int i = Integer.parseInt(req.substring(pos1+2, pos2));
System.out.println("Server replying to >" + tests[i][0] + "<");
PrintStream out = new PrintStream( new BufferedOutputStream(
s.getOutputStream() ));
/* start the http server */
HttpServer svr = new HttpServer();
(newThread(svr)).start();
String authority = svr.authority();
System.out.println("Server listening on: " + authority);
/* * Iterate through each test case and check that getResponseCode * returns the expected result.
*/ int failures = 0;
Object tests[][] = getTests(); for (int i=0; i<tests.length; i++) {
System.out.println("******************");
System.out.println("Test with response: >" + tests[i][0] + "<");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.