public void doTest(String path, int expectedStatus) throws Exception { InputStream is = null; BufferedReader input = null; try { URL url = new URL("http://" + host + ":" + port + contextRoot + "/" + path); System.out.println("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(10000); conn.connect(); int responseCode = conn.getResponseCode(); if (responseCode != expectedStatus) { throw new Exception("Unexpected return code: " + responseCode); } if (responseCode == HttpURLConnection.HTTP_OK) { is = conn.getInputStream(); input = new BufferedReader(new InputStreamReader(is)); String response = input.readLine(); } } finally { try { if (is != null) is.close(); } catch (IOException ex) { } try { if (input != null) input.close(); } catch (IOException ex) { } } }
private void connect() { HttpURLConnection con = null; String line = ""; try { URL url = new URL(link); con = (HttpURLConnection) url.openConnection(); con.setReadTimeout(readTimeout); con.setConnectTimeout(connectionTimeout); con.setRequestMethod("GET"); con.setDoInput(true); // Start the connection con.connect(); // Read results from the query BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); while ((line = reader.readLine()) != null) { resultString.add(line); } reader.close(); } catch (IOException e) { try { resultString.add(con.getResponseCode() + ""); } catch (IOException e1) { // TODO: Can't figure response code } } finally { if (con != null) con.disconnect(); } }
/** * 请求xml数据 * * @param url * @param soapAction * @param xml * @return */ public static String sendXMl(String url, String soapAction, String xml) { HttpURLConnection conn = null; InputStream in = null; InputStreamReader isr = null; OutputStream out = null; StringBuffer result = null; try { byte[] sendbyte = xml.getBytes("UTF-8"); URL u = new URL(url); conn = (HttpURLConnection) u.openConnection(); conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); conn.setRequestProperty("SOAPAction", soapAction); conn.setRequestProperty("Content-Length", sendbyte.length + ""); conn.setDoInput(true); conn.setDoOutput(true); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); out = conn.getOutputStream(); out.write(sendbyte); if (conn.getResponseCode() == 200) { result = new StringBuffer(); in = conn.getInputStream(); isr = new InputStreamReader(in, "UTF-8"); char[] c = new char[1024]; int a = isr.read(c); while (a != -1) { result.append(new String(c, 0, a)); a = isr.read(c); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); } try { if (in != null) { in.close(); } if (isr != null) { isr.close(); } if (out != null) { out.close(); } } catch (IOException e) { e.printStackTrace(); } } return result == null ? null : result + ""; }
/** * 以阻塞的方式立即下载一个文件,该方法会覆盖已经存在的文件 * * @param task * @return "ok" if download success (else return errmessage); */ static String download(DownloadTask task) { if (!openedStatus && show) openStatus(); URL url; HttpURLConnection conn; try { url = new URL(task.getOrigin()); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(30000); conn.setReadTimeout(30000); conn.setRequestProperty( "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/" + Math.random()); if ("www.imgjav.com".equals(url.getHost())) { // 该网站需要带cookie请求 conn.setRequestProperty( "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"); // conn.setRequestProperty("Cookie", "__cfduid=d219ea333c7a9b5743b572697b631925a1446093229; // cf_clearance=6ae62d843f5d09acf393f9e4eb130d9366840c82-1446093303-28800"); conn.setRequestProperty( "Cookie", "__cfduid=d6ee846b378bb7d5d173a05541f8a2b6a1446090548; cf_clearance=ea10e8db31f8b6ee51570b118dd89b7e616d7b62-1446099714-28800"); conn.setRequestProperty("Host", "www.imgjav.com"); } Path directory = Paths.get(task.getDest()).getParent(); if (!Files.exists(directory)) Files.createDirectories(directory); } catch (Exception e) { e.printStackTrace(); return e.getMessage(); } try (InputStream is = conn.getInputStream(); BufferedInputStream in = new BufferedInputStream(is); FileOutputStream fos = new FileOutputStream(task.getDest()); OutputStream out = new BufferedOutputStream(fos); ) { int length = conn.getContentLength(); if (length < 1) throw new IOException("length<1"); byte[] binary = new byte[length]; byte[] buff = new byte[65536]; int len; int index = 0; while ((len = in.read(buff)) != -1) { System.arraycopy(buff, 0, binary, index, len); index += len; allLen += len; // allLen有线程安全的问题 ,可能会不正确。无需精确数据,所以不同步了 task.setReceivePercent(String.format("%.2f", ((float) index / length) * 100) + "%"); } out.write(binary); } catch (IOException e) { e.printStackTrace(); return e.getMessage(); } return "ok"; }
Response doSend() throws IOException { connection.setRequestMethod(this.verb.name()); if (connectTimeout != null) { connection.setConnectTimeout(connectTimeout.intValue()); } if (readTimeout != null) { connection.setReadTimeout(readTimeout.intValue()); } if (boundary != null) { connection.setRequestProperty(CONTENT_TYPE, "multipart/form-data; boundary=" + boundary); } addHeaders(connection); if (verb.equals(Verb.PUT) || verb.equals(Verb.POST)) { addBody(connection, getByteBodyContents()); } return new Response(connection); }
public String performPostCall(String requestURL, String param) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); URL url; String response = ""; try { url = new URL(requestURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(15000); conn.setConnectTimeout(15000); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); writer.write(param); writer.flush(); writer.close(); os.close(); // int responseCode=conn.getResponseCode(); // if (responseCode == HttpURLConnection.HTTP_OK) { String line; BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ((line = br.readLine()) != null) { response += line; } // } // else { // response= null; // } } catch (Exception e) { e.printStackTrace(); } return response; }
Response doSend(RequestTuner tuner) throws IOException { connection.setRequestMethod(this.verb.name()); if (connectTimeout != null) { connection.setConnectTimeout(connectTimeout.intValue()); } if (readTimeout != null) { connection.setReadTimeout(readTimeout.intValue()); } tuner.tune(this); addHeaders(connection); if (verb.equals(Verb.PUT) || verb.equals(Verb.POST)) { addBody(connection, getByteBodyContents()); } return new Response(connection); }
@Override public HTTPResponse call() throws Exception { final HttpURLConnection hc = (HttpURLConnection) uri.toURL().openConnection(); try { hc.setDoOutput(true); hc.setRequestMethod(method.name()); hc.setRequestProperty(MimeTypes.CONTENT_TYPE, MimeTypes.APP_XML); hc.getOutputStream().write(content); hc.getOutputStream().close(); hc.setReadTimeout(SOCKET_TIMEOUT); while (!stop) { try { return new HTTPResponse(hc.getResponseCode()); } catch (final SocketTimeoutException e) { } } return null; } finally { hc.disconnect(); } }
@Override public HTTPResponse call() throws Exception { final HttpURLConnection hc = (HttpURLConnection) uri.toURL().openConnection(); hc.setReadTimeout(SOCKET_TIMEOUT); try { while (!stop) { try { final int code = hc.getResponseCode(); final InputStream input = hc.getInputStream(); final ByteList bl = new ByteList(); for (int i; (i = input.read()) != -1; ) bl.add(i); return new HTTPResponse(code, bl.toString()); } catch (final SocketTimeoutException e) { } } return null; } finally { hc.disconnect(); } }
public static Document getDocumentFromHttpGetRequest(String service, String xmlSchema) throws JDOMException { try { // Open connection to service HttpURLConnection connection = (HttpURLConnection) (new URL(service)).openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(150); connection.setReadTimeout(150); // Build document from inputstream InputStream in = connection.getInputStream(); SAXBuilder builder = new SAXBuilder(); if (false) { builder.setValidation(true); builder.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", xmlSchema); } return builder.build(in); } catch (IOException e) { return null; } }