Libraryless. Click here for Pure Java version (771L/6K/19K).
1 | !752 |
2 | |
3 | static boolean actualCopy = true; |
4 | static int maxCopy = 1024*1024*1024; |
5 | |
6 | p {
|
7 | File dest = new File("/home/stefan/Downloads/Brilliance.mp4");
|
8 | //print(bytesToHex(firstBytesOfFile(dest, 10))); |
9 | int downloaded = (int) dest.length(); |
10 | print("Existing: " + downloaded);
|
11 | |
12 | URL url = new URL("http://cdl37.convert2mp3.net/download.php?id=youtube_pvcsa2ZesZY&key=bV7xjw9SuB4X&d=y");
|
13 | |
14 | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
15 | |
16 | connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
|
17 | |
18 | InputStream in = connection.getInputStream(); |
19 | try {
|
20 | print("Length: " + connection.getContentLength());
|
21 | int status = connection.getResponseCode(); |
22 | print("Code: " + status);
|
23 | if (status != HttpURLConnection.HTTP_PARTIAL) |
24 | fail("No partial download possible!");
|
25 | |
26 | if (actualCopy) {
|
27 | FileOutputStream fos = new FileOutputStream(dest, true); // append |
28 | |
29 | print("Copied: " + copyStream(downloaded, downloaded+maxCopy, in, fos));
|
30 | fos.close(); |
31 | } else {
|
32 | new ByteArrayOutputStream bos; |
33 | print("Tested: " + copyStream(downloaded, downloaded+10, in, bos));
|
34 | byte[] bytes = bos.toByteArray(); |
35 | print(bytesToHex(subArray(bytes, 0, 10))); |
36 | } |
37 | } finally {
|
38 | in.close(); |
39 | } |
40 | } |
41 | |
42 | static long copyStream(int downloaded, long maxDownload, InputStream in, OutputStream out) ctex {
|
43 | byte[] buf = new byte[65536]; |
44 | long total = downloaded; |
45 | while (total < maxDownload) {
|
46 | int n = in.read(buf); |
47 | if (n <= 0) return total; |
48 | out.write(buf, 0, n); |
49 | total += n; |
50 | print("Downloaded: " + toK(total) + " K");
|
51 | } |
52 | ret total; |
53 | } |
54 | |
55 | static byte[] subArray(byte[] b, int start, int end) {
|
56 | byte[] x = new byte[end-start]; |
57 | System.arraycopy(b, start, x, 0, end-start); |
58 | ret x; |
59 | } |
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1002996 |
| Snippet name: | Java Resume HTTP Test (works!) |
| Eternal ID of this version: | #1002996/1 |
| Text MD5: | 615eeaba6aff39690254052184b5e86e |
| Transpilation MD5: | 767676e9cdd5eb92e0ef62e6733bf10b |
| Author: | stefan |
| Category: | javax / networking |
| Type: | JavaX source code |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2016-04-17 03:04:33 |
| Source code size: | 1850 bytes / 59 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 905 / 1028 |
| Referenced in: | [show references] |