/** * Login with user name and password sent as String parameter to url using POST Interrogation * * @param username * @param userpass * @throws IOException */ @And("^I make post message with user: \"([^\"]*)\" and password: \"([^\"]*)\"$") public void HttpPostForm(String username, String userpass) throws IOException { URL url = new URL("http://dippy.trei.ro"); HttpURLConnection hConnection = (HttpURLConnection) url.openConnection(); HttpURLConnection.setFollowRedirects(true); hConnection.setDoOutput(true); hConnection.setRequestMethod("POST"); PrintStream ps = new PrintStream(hConnection.getOutputStream()); ps.print("user="******"&pass="******";do_login=Login"); ps.close(); hConnection.connect(); if (HttpURLConnection.HTTP_OK == hConnection.getResponseCode()) { InputStream is = hConnection.getInputStream(); System.out.println("!!! encoding: " + hConnection.getContentEncoding()); System.out.println("!!! message: " + hConnection.getResponseMessage()); is.close(); hConnection.disconnect(); } }
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) { } } }
public SetIfModifiedSince() throws Exception { serverSock = new ServerSocket(0); int port = serverSock.getLocalPort(); Thread thr = new Thread(this); thr.start(); Date date = new Date(new Date().getTime() - 1440000); // this time yesterday URL url; HttpURLConnection con; // url = new URL(args[0]); url = new URL("http://localhost:" + String.valueOf(port) + "/anything"); con = (HttpURLConnection) url.openConnection(); con.setIfModifiedSince(date.getTime()); con.connect(); int ret = con.getResponseCode(); if (ret == 304) { System.out.println("Success!"); } else { throw new RuntimeException( "Test failed! Http return code using setIfModified method is:" + ret + "\nNOTE:some web servers are not implemented according to RFC, thus a failed test does not necessarily indicate a bug in setIfModifiedSince method"); } }
public boolean shutdown(int port, boolean ssl) { try { String protocol = "http" + (ssl ? "s" : ""); URL url = new URL(protocol, "127.0.0.1", port, "shutdown"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("servicemanager", "shutdown"); conn.connect(); StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); int n; char[] cbuf = new char[1024]; while ((n = br.read(cbuf, 0, cbuf.length)) != -1) sb.append(cbuf, 0, n); br.close(); String message = sb.toString().replace("<br>", "\n"); if (message.contains("Goodbye")) { cp.appendln("Shutting down the server:"); String[] lines = message.split("\n"); for (String line : lines) { cp.append("..."); cp.appendln(line); } return true; } } catch (Exception ex) { } cp.appendln("Unable to shutdown CTP"); return false; }
private boolean handshake() throws Exception { URL homePage = new URL("http://mangaonweb.com/viewer.do?ctsn=" + ctsn); HttpURLConnection urlConn = (HttpURLConnection) homePage.openConnection(); urlConn.connect(); if (urlConn.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) return (false); // save the cookie String headerName = null; for (int i = 1; (headerName = urlConn.getHeaderFieldKey(i)) != null; i++) { if (headerName.equals("Set-Cookie")) { cookies = urlConn.getHeaderField(i); } } // save cdn and crcod String page = "", line; BufferedReader stream = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8")); while ((line = stream.readLine()) != null) page += line; cdn = param(page, "cdn"); crcod = param(page, "crcod"); return (true); }
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(); } }
private String getAddressXY(String x, String y) { try { StringBuilder text = new StringBuilder(); String url = properties.getProperty("geocoderUrl"); String param1 = properties.getProperty("geocoderUrlParam1"); String param2 = properties.getProperty("geocoderUrlParam2"); url = url + "?" + param1 + "=" + x + "&" + param2 + "=" + y; URL page = new URL(url); HttpURLConnection urlConn = (HttpURLConnection) page.openConnection(); urlConn.connect(); InputStreamReader in = new InputStreamReader((InputStream) urlConn.getContent()); BufferedReader buff = new BufferedReader(in); String line = buff.readLine(); while (line != null) { text.append(line); line = buff.readLine(); } String result = text.toString(); buff.close(); in.close(); return result; } catch (MalformedURLException e) { windowServer.txtErrors.append(e.getMessage() + "\n"); return ""; } catch (Exception e) { windowServer.txtErrors.append(e.getMessage() + "\n"); return ""; } }
Response(HttpURLConnection connection) throws IOException { try { connection.connect(); code = connection.getResponseCode(); headers = parseHeaders(connection); stream = isSuccessful() ? connection.getInputStream() : connection.getErrorStream(); } catch (UnknownHostException e) { throw new OAuthException("The IP address of a host could not be determined.", e); } }
public static boolean hasUpdate(int projectID, String version) { try { HttpURLConnection con = (HttpURLConnection) (new URL("https://api.curseforge.com/servermods/files?projectIds=" + projectID)) .openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; JVM)"); con.setRequestProperty("Pragma", "no-cache"); con.connect(); JSONArray json = (JSONArray) JSONValue.parse(new InputStreamReader(con.getInputStream())); String[] cdigits = ((String) ((JSONObject) json.get(json.size() - 1)).get("name")) .toLowerCase() .split("\\."); String[] vdigits = version.toLowerCase().split("\\."); int max = vdigits.length > cdigits.length ? cdigits.length : vdigits.length; int a; int b; for (int i = 0; i < max; i++) { a = b = 0; try { a = Integer.parseInt(cdigits[i]); } catch (Throwable t1) { char[] c = cdigits[i].toCharArray(); for (int j = 0; j < c.length; j++) { a += (c[j] << ((c.length - (j + 1)) * 8)); } } try { b = Integer.parseInt(vdigits[i]); } catch (Throwable t1) { char[] c = vdigits[i].toCharArray(); for (int j = 0; j < c.length; j++) { b += (c[j] << ((c.length - (j + 1)) * 8)); } } if (a > b) { return true; } else if (a < b) { return false; } else if ((i == max - 1) && (cdigits.length > vdigits.length)) { return true; } } } catch (Throwable t) { } return false; }
private int invokeServlet(String url, String method, String user, StringBuffer output) throws Exception { String httpMethod = "GET"; if ((method != null) && (method.length() > 0)) httpMethod = method; System.out.println("Invoking servlet with HTTP method: " + httpMethod); URL u = new URL(url); HttpURLConnection c1 = (HttpURLConnection) u.openConnection(); c1.setRequestMethod(httpMethod); if ((user != null) && (user.length() > 0)) { // Add BASIC header for authentication String auth = user + ":" + password; String authEncoded = new sun.misc.BASE64Encoder().encode(auth.getBytes()); c1.setRequestProperty("Authorization", "Basic " + authEncoded); } c1.setUseCaches(false); // Connect and get the response code and/or output to verify c1.connect(); int code = c1.getResponseCode(); if (code == HttpURLConnection.HTTP_OK) { InputStream is = null; BufferedReader input = null; String line = null; try { is = c1.getInputStream(); input = new BufferedReader(new InputStreamReader(is)); while ((line = input.readLine()) != null) { output.append(line); // System.out.println(line); } } finally { try { if (is != null) is.close(); } catch (Exception exc) { } try { if (input != null) input.close(); } catch (Exception exc) { } } } else if (code == HttpURLConnection.HTTP_MOVED_TEMP) { URL redir = new URL(c1.getHeaderField("Location")); String line = "Servlet redirected to: " + redir.toString(); output.append(line); System.out.println(line); } return code; }
/** * 通过post方式访问短信接口 * * @param param sms message, like key1=value1&key2=value2 * @param isproxy 是否启用代理模式 * @return */ public String sendPost(String param, boolean isproxy) { OutputStreamWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(this.url); HttpURLConnection conn = null; conn = (HttpURLConnection) realUrl.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); // POST方法 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty( "user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.connect(); out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); out.write(param); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("[ERROR]发送 POST 请求出现异常!" + e); e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; }
private static InputStream openHttpByteRange(URL url, long offset, long len) throws IOException { HttpURLConnection conn = (HttpURLConnection) url.openConnection(); String rangeSpec = "bytes=" + offset + "-"; if (len != -1) { long lastByteOffset = offset + len - 1; rangeSpec += lastByteOffset; } conn.setRequestProperty("Range", rangeSpec); conn.connect(); InputStream is = conn.getInputStream(); if (conn.getResponseCode() != HttpURLConnection.HTTP_PARTIAL) { System.err.println("HTTP server does not support Range request headers"); is.close(); return null; } return is; }
private boolean checkServer(int port, boolean ssl) { try { URL url = new URL("http://127.0.0.1:" + port); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.connect(); int length = conn.getContentLength(); StringBuffer text = new StringBuffer(); InputStream is = conn.getInputStream(); InputStreamReader isr = new InputStreamReader(is); int size = 256; char[] buf = new char[size]; int len; while ((len = isr.read(buf, 0, size)) != -1) text.append(buf, 0, len); isr.close(); if (programName.equals("ISN")) return !shutdown(port, ssl); return true; } catch (Exception ex) { return false; } }
/** * 发起查询处理结果请求 * * @param params 请求参数 * @return 请求结果 * @throws IOException */ public Result getResult(Map<String, Object> params) throws IOException { InputStream is = null; HttpURLConnection conn; StringBuilder sb = new StringBuilder(HOST + "result"); sb.append("?"); for (Map.Entry<String, Object> mapping : params.entrySet()) { sb.append(mapping.getKey() + "=" + mapping.getValue().toString() + "&"); } URL url = new URL(sb.toString().substring(0, sb.length() - 1)); conn = (HttpURLConnection) url.openConnection(); // 设置必要参数 conn.setConnectTimeout(timeout); conn.setRequestMethod("GET"); conn.setUseCaches(false); conn.setDoOutput(true); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("User-Agent", UpYunUtils.VERSION); // 设置时间 conn.setRequestProperty(DATE, getGMTDate()); // 设置签名 conn.setRequestProperty(AUTHORIZATION, sign(params)); // 创建链接 conn.connect(); // 获取返回的信息 Result result = getResp(conn); if (is != null) { is.close(); } if (conn != null) { conn.disconnect(); } return result; }
public void doTest() throws Exception { URL url = new URL("http://" + host + ":" + port + contextRoot + "/test"); System.out.println("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); int responseCode = conn.getResponseCode(); if (responseCode != 200) { throw new Exception("Unexpected return code: " + responseCode); } InputStream is = null; BufferedReader input = null; try { is = conn.getInputStream(); input = new BufferedReader(new InputStreamReader(is)); String line = input.readLine(); if (!EXPECTED_RESPONSE.equals(line)) { throw new Exception( "Wrong response. Expected: " + EXPECTED_RESPONSE + ", received: " + line); } } finally { try { if (is != null) { is.close(); } } catch (IOException ioe) { // ignore } try { if (input != null) { input.close(); } } catch (IOException ioe) { // ignore } } }
public void doTest() { BufferedReader bis = null; try { URL url = new URL("http://" + host + ":" + port + contextRoot + "/jsp/test.jspx"); System.out.println("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); int responseCode = conn.getResponseCode(); if (responseCode != 200) { stat.addStatus( "Wrong response code. Expected: 200" + ", received: " + responseCode, stat.FAIL); } else { bis = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = null; String lastLine = null; while ((line = bis.readLine()) != null) { lastLine = line; } if (!EXPECTED.equals(lastLine)) { stat.addStatus( "Wrong response body. Expected: " + EXPECTED + ", received: " + lastLine, stat.FAIL); } else { stat.addStatus(TEST_NAME, stat.PASS); } } } catch (Exception ex) { System.out.println(TEST_NAME + " test failed."); stat.addStatus(TEST_NAME, stat.FAIL); ex.printStackTrace(); } finally { try { if (bis != null) bis.close(); } catch (IOException ex) { } } }
@Test(groups = {"pulse"}) // test method public void testUserTx() throws Exception { try { String testurl = "http://" + host + ":" + port + "/" + strContextRoot + "/MyServlet?testcase=usertx"; URL url = new URL(testurl); echo("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); int responseCode = conn.getResponseCode(); InputStream is = conn.getInputStream(); BufferedReader input = new BufferedReader(new InputStreamReader(is)); String line = null; boolean result = false; String testLine = null; String EXPECTED_RESPONSE = "user-tx-commit:true"; String EXPECTED_RESPONSE2 = "user-tx-rollback:true"; while ((line = input.readLine()) != null) { // echo(line); if (line.indexOf(EXPECTED_RESPONSE) != -1 && line.indexOf(EXPECTED_RESPONSE2) != -1) { testLine = line; echo(testLine); result = true; break; } } Assert.assertEquals(result, true, "Unexpected Results"); } catch (Exception e) { e.printStackTrace(); throw new Exception(e); } }
public void doTest() { BufferedReader bis = null; try { URL url = new URL("http://" + host + ":" + port + contextRoot + "/jsp/test.jsp"); System.out.println("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); int responseCode = conn.getResponseCode(); if (responseCode != 200) { System.err.println("Wrong response code. Expected: 200" + ", received: " + responseCode); stat.addStatus(TEST_NAME, stat.FAIL); } else { bis = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = null; int index = 0; while ((line = bis.readLine()) != null) { if (line.trim().length() == 0) continue; if (!line.equals(expected[index++])) { System.err.println("Wrong response: " + line + ", expected: " + expected[index]); stat.addStatus(TEST_NAME, stat.FAIL); return; } } stat.addStatus(TEST_NAME, stat.PASS); } } catch (Exception ex) { ex.printStackTrace(); stat.addStatus(TEST_NAME, stat.FAIL); } finally { try { if (bis != null) bis.close(); } catch (IOException ex) { } } }
// @Parameters({ "host", "port", "contextroot" }) @Test(groups = {"pulse"}) // test method // public void webtest(String host, String port, String contextroot) throws Exception{ public void executeServlet() throws Exception { try { String testurl = "http://" + host + ":" + port + "/" + strContextRoot + "/test"; // System.out.println("URL is: "+testurl); URL url = new URL(testurl); // echo("Connecting to: " + url.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); int responseCode = conn.getResponseCode(); InputStream is = conn.getInputStream(); BufferedReader input = new BufferedReader(new InputStreamReader(is)); String line = null; boolean result = false; String testLine = null; String[] regexesToFind = { "(?s)(?m).*Obtained ValidatorFactory: org.hibernate.validator.internal.engine.ValidatorFactoryImpl.*", "(?s)(?m).*case1: No ConstraintViolations found.*", "(?s)(?m).*case2: caught IllegalArgumentException.*", "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: listOfString.*", "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: lastName.*", "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: firstName.*", "(?s)(?m).*case4: No ConstraintViolations found.*" }; final int len = regexesToFind.length; int i; Boolean regexesFound[] = new Boolean[len]; while ((line = input.readLine()) != null) { // for each line in the input, loop through each of the // elements of regexesToFind. At least one must match. boolean found = false; for (i = 0; i < len; i++) { if (found = line.matches(regexesToFind[i])) { regexesFound[i] = Boolean.TRUE; } } } boolean foundMissingRegexMatch = false; String errorMessage = null; for (i = 0; i < len; i++) { if (null == regexesFound[i] || Boolean.FALSE == regexesFound[i]) { foundMissingRegexMatch = true; errorMessage = "Unable to find match for regex " + regexesToFind[i] + " in output from request to " + testurl; break; } } Assert.assertTrue(!foundMissingRegexMatch, errorMessage); } catch (Exception e) { e.printStackTrace(); throw new Exception(e); } }
SOAPMessage post(SOAPMessage message, URL endPoint) throws SOAPException { boolean isFailure = false; URL url = null; HttpURLConnection httpConnection = null; int responseCode = 0; try { if (endPoint.getProtocol().equals("https")) // if(!setHttps) initHttps(); // Process the URL JaxmURI uri = new JaxmURI(endPoint.toString()); String userInfo = uri.getUserinfo(); url = endPoint; if (dL > 0) d("uri: " + userInfo + " " + url + " " + uri); // TBD // Will deal with https later. if (!url.getProtocol().equalsIgnoreCase("http") && !url.getProtocol().equalsIgnoreCase("https")) { log.severe("SAAJ0052.p2p.protocol.mustbe.http.or.https"); throw new IllegalArgumentException( "Protocol " + url.getProtocol() + " not supported in URL " + url); } httpConnection = (HttpURLConnection) createConnection(url); httpConnection.setRequestMethod("POST"); httpConnection.setDoOutput(true); httpConnection.setDoInput(true); httpConnection.setUseCaches(false); httpConnection.setInstanceFollowRedirects(true); if (message.saveRequired()) message.saveChanges(); MimeHeaders headers = message.getMimeHeaders(); Iterator it = headers.getAllHeaders(); boolean hasAuth = false; // true if we find explicit Auth header while (it.hasNext()) { MimeHeader header = (MimeHeader) it.next(); String[] values = headers.getHeader(header.getName()); if (values.length == 1) httpConnection.setRequestProperty(header.getName(), header.getValue()); else { StringBuffer concat = new StringBuffer(); int i = 0; while (i < values.length) { if (i != 0) concat.append(','); concat.append(values[i]); i++; } httpConnection.setRequestProperty(header.getName(), concat.toString()); } if ("Authorization".equals(header.getName())) { hasAuth = true; log.fine("SAAJ0091.p2p.https.auth.in.POST.true"); } } if (!hasAuth && userInfo != null) { initAuthUserInfo(httpConnection, userInfo); } OutputStream out = httpConnection.getOutputStream(); message.writeTo(out); out.flush(); out.close(); httpConnection.connect(); try { responseCode = httpConnection.getResponseCode(); // let HTTP_INTERNAL_ERROR (500) through because it is used for SOAP faults if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) { isFailure = true; } // else if (responseCode != HttpURLConnection.HTTP_OK) // else if (!(responseCode >= HttpURLConnection.HTTP_OK && responseCode < 207)) else if ((responseCode / 100) != 2) { log.log( Level.SEVERE, "SAAJ0008.p2p.bad.response", new String[] {httpConnection.getResponseMessage()}); throw new SOAPExceptionImpl( "Bad response: (" + responseCode + httpConnection.getResponseMessage()); } } catch (IOException e) { // on JDK1.3.1_01, we end up here, but then getResponseCode() succeeds! responseCode = httpConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) { isFailure = true; } else { throw e; } } } catch (SOAPException ex) { throw ex; } catch (Exception ex) { log.severe("SAAJ0009.p2p.msg.send.failed"); throw new SOAPExceptionImpl("Message send failed", ex); } SOAPMessage response = null; if (responseCode == HttpURLConnection.HTTP_OK || isFailure) { try { MimeHeaders headers = new MimeHeaders(); String key, value; // Header field 0 is the status line so we skip it. int i = 1; while (true) { key = httpConnection.getHeaderFieldKey(i); value = httpConnection.getHeaderField(i); if (key == null && value == null) break; if (key != null) { StringTokenizer values = new StringTokenizer(value, ","); while (values.hasMoreTokens()) headers.addHeader(key, values.nextToken().trim()); } i++; } InputStream httpIn = (isFailure ? httpConnection.getErrorStream() : httpConnection.getInputStream()); byte[] bytes = readFully(httpIn); int length = httpConnection.getContentLength() == -1 ? bytes.length : httpConnection.getContentLength(); // If no reply message is returned, // content-Length header field value is expected to be zero. if (length == 0) { response = null; log.warning("SAAJ0014.p2p.content.zero"); } else { ByteInputStream in = new ByteInputStream(bytes, length); response = messageFactory.createMessage(headers, in); } httpIn.close(); httpConnection.disconnect(); } catch (SOAPException ex) { throw ex; } catch (Exception ex) { log.log(Level.SEVERE, "SAAJ0010.p2p.cannot.read.resp", ex); throw new SOAPExceptionImpl("Unable to read response: " + ex.getMessage()); } } return response; }
SOAPMessage doGet(URL endPoint) throws SOAPException { boolean isFailure = false; URL url = null; HttpURLConnection httpConnection = null; int responseCode = 0; try { /// Is https GET allowed?? if (endPoint.getProtocol().equals("https")) initHttps(); // Process the URL JaxmURI uri = new JaxmURI(endPoint.toString()); String userInfo = uri.getUserinfo(); url = endPoint; if (dL > 0) d("uri: " + userInfo + " " + url + " " + uri); // TBD // Will deal with https later. if (!url.getProtocol().equalsIgnoreCase("http") && !url.getProtocol().equalsIgnoreCase("https")) { log.severe("SAAJ0052.p2p.protocol.mustbe.http.or.https"); throw new IllegalArgumentException( "Protocol " + url.getProtocol() + " not supported in URL " + url); } httpConnection = (HttpURLConnection) createConnection(url); httpConnection.setRequestMethod("GET"); httpConnection.setDoOutput(true); httpConnection.setDoInput(true); httpConnection.setUseCaches(false); httpConnection.setFollowRedirects(true); httpConnection.connect(); try { responseCode = httpConnection.getResponseCode(); // let HTTP_INTERNAL_ERROR (500) through because it is used for SOAP faults if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) { isFailure = true; } else if ((responseCode / 100) != 2) { log.log( Level.SEVERE, "SAAJ0008.p2p.bad.response", new String[] {httpConnection.getResponseMessage()}); throw new SOAPExceptionImpl( "Bad response: (" + responseCode + httpConnection.getResponseMessage()); } } catch (IOException e) { // on JDK1.3.1_01, we end up here, but then getResponseCode() succeeds! responseCode = httpConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_INTERNAL_ERROR) { isFailure = true; } else { throw e; } } } catch (SOAPException ex) { throw ex; } catch (Exception ex) { log.severe("SAAJ0012.p2p.get.failed"); throw new SOAPExceptionImpl("Get failed", ex); } SOAPMessage response = null; if (responseCode == HttpURLConnection.HTTP_OK || isFailure) { try { MimeHeaders headers = new MimeHeaders(); String key, value; // Header field 0 is the status line so we skip it. int i = 1; while (true) { key = httpConnection.getHeaderFieldKey(i); value = httpConnection.getHeaderField(i); if (key == null && value == null) break; if (key != null) { StringTokenizer values = new StringTokenizer(value, ","); while (values.hasMoreTokens()) headers.addHeader(key, values.nextToken().trim()); } i++; } InputStream httpIn = (isFailure ? httpConnection.getErrorStream() : httpConnection.getInputStream()); // If no reply message is returned, // content-Length header field value is expected to be zero. // java SE 6 documentation says : // available() : an estimate of the number of bytes that can be read // (or skipped over) from this input stream without blocking // or 0 when it reaches the end of the input stream. if ((httpIn == null) || (httpConnection.getContentLength() == 0) || (httpIn.available() == 0)) { response = null; log.warning("SAAJ0014.p2p.content.zero"); } else { response = messageFactory.createMessage(headers, httpIn); } httpIn.close(); httpConnection.disconnect(); } catch (SOAPException ex) { throw ex; } catch (Exception ex) { log.log(Level.SEVERE, "SAAJ0010.p2p.cannot.read.resp", ex); throw new SOAPExceptionImpl("Unable to read response: " + ex.getMessage()); } } return response; }
public InputStream upload() throws ResourceUploaderException { try { try { URL url = new URL(target.toString().replaceAll(" ", "%20")); // some authentications screw up without an explicit port number here String protocol = url.getProtocol().toLowerCase(); if (url.getPort() == -1) { int target_port; if (protocol.equals("http")) { target_port = 80; } else { target_port = 443; } try { String str = target.toString().replaceAll(" ", "%20"); int pos = str.indexOf("://"); pos = str.indexOf("/", pos + 4); // might not have a trailing "/" if (pos == -1) { url = new URL(str + ":" + target_port + "/"); } else { url = new URL(str.substring(0, pos) + ":" + target_port + str.substring(pos)); } } catch (Throwable e) { Debug.printStackTrace(e); } } url = AddressUtils.adjustURL(url); try { if (user_name != null) { SESecurityManager.setPasswordHandler(url, this); } for (int i = 0; i < 2; i++) { try { HttpURLConnection con; if (url.getProtocol().equalsIgnoreCase("https")) { // see ConfigurationChecker for SSL client defaults HttpsURLConnection ssl_con = (HttpsURLConnection) url.openConnection(); // allow for certs that contain IP addresses rather than dns names ssl_con.setHostnameVerifier( new HostnameVerifier() { public boolean verify(String host, SSLSession session) { return (true); } }); con = ssl_con; } else { con = (HttpURLConnection) url.openConnection(); } con.setRequestMethod("POST"); con.setRequestProperty( "User-Agent", Constants.AZUREUS_NAME + " " + Constants.AZUREUS_VERSION); con.setDoOutput(true); con.setDoInput(true); OutputStream os = con.getOutputStream(); byte[] buffer = new byte[65536]; while (true) { int len = data.read(buffer); if (len <= 0) { break; } os.write(buffer, 0, len); } con.connect(); int response = con.getResponseCode(); if ((response != HttpURLConnection.HTTP_ACCEPTED) && (response != HttpURLConnection.HTTP_OK)) { throw (new ResourceUploaderException( "Error on connect for '" + url.toString() + "': " + Integer.toString(response) + " " + con.getResponseMessage())); } return (con.getInputStream()); } catch (SSLException e) { if (i == 0) { if (SESecurityManager.installServerCertificates(url) != null) { // certificate has been installed continue; // retry with new certificate } } throw (e); } } throw (new ResourceUploaderException("Should never get here")); } finally { if (user_name != null) { SESecurityManager.setPasswordHandler(url, null); } } } catch (java.net.MalformedURLException e) { throw (new ResourceUploaderException( "Exception while parsing URL '" + target + "':" + e.getMessage(), e)); } catch (java.net.UnknownHostException e) { throw (new ResourceUploaderException( "Exception while initializing download of '" + target + "': Unknown Host '" + e.getMessage() + "'", e)); } catch (java.io.IOException e) { throw (new ResourceUploaderException( "I/O Exception while downloading '" + target + "':" + e.toString(), e)); } } catch (Throwable e) { ResourceUploaderException rde; if (e instanceof ResourceUploaderException) { rde = (ResourceUploaderException) e; } else { rde = new ResourceUploaderException("Unexpected error", e); } throw (rde); } finally { try { data.close(); } catch (Throwable e) { e.printStackTrace(); } } }
protected Boolean doInBackground(ArrayList... params) { download_photos.this.runOnUiThread( new Runnable() { public void run() { mtext.setText( getText(R.string.download_textview_message_1) + " " + path.toString() + ". "); } }); if (resume_file.exists()) { initial_value = readProgress()[0]; } else { initial_value = 1; } for (int i = initial_value - 1; i < links.size(); i++) { // asynctask expects more than one ArrayList<String> item, but we are sending only one, // which is params[0] Uri imageuri = Uri.parse(params[0].get(i).toString()); URL imageurl = null; HttpURLConnection connection = null; total_files_to_download = links.size(); completed_downloads = i + 1; try { imageurl = new URL(params[0].get(i).toString()); connection = (HttpURLConnection) imageurl.openConnection(); connection.connect(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // extracts the real file name of the photo from url path_segments = imageuri.getPathSegments(); int total_segments = path_segments.size(); file_name = path_segments.get(total_segments - 1); path.mkdirs(); // if(i==0) // first_image = path.toString() + "/" + file_name; InputStream input; OutputStream output; try { input = new BufferedInputStream(imageurl.openStream()); fully_qualified_file_name = new File(path, file_name); output = new BufferedOutputStream(new FileOutputStream(fully_qualified_file_name)); byte data[] = new byte[1024]; int count; while ((count = input.read(data)) != -1) { output.write(data, 0, count); } output.flush(); output.close(); input.close(); connection.disconnect(); new folder_scanner(getApplicationContext(), fully_qualified_file_name); publishProgress(completed_downloads, total_files_to_download); if (this.isCancelled()) { writeProgress(completed_downloads, total_files_to_download); break; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // creates required folders and subfolders if they do not exist already // boolean success = path.mkdirs(); // makes request to download photos // DownloadManager.Request request = new DownloadManager.Request(imageuri); // set path for downloads // request.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES,sub_path); // request.setDescription("Downloaded using Facebook Album Downloader"); // DownloadManager dm = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); // download is enqueue in download list. it returns unique id for each download // download_id = dm.enqueue(request); } // returns the unique id. we are not using this id return true; }