uniapp,h5

test-request-protocols-binary-data.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var sys = require("util")
  2. , assert = require("assert")
  3. , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
  4. , xhr;
  5. xhr = new XMLHttpRequest();
  6. xhr.onreadystatechange = function() {
  7. if (this.readyState == 4) {
  8. assert.equal("0000 803f 0000 a040 0000 c040 0000 e040", logBinary(this.response.toString('binary')));
  9. runSync();
  10. }
  11. };
  12. // Async
  13. var url = "file://" + __dirname + "/testBinaryData";
  14. xhr.open("GET", url);
  15. xhr.send();
  16. // Sync
  17. var runSync = function() {
  18. xhr = new XMLHttpRequest();
  19. xhr.onreadystatechange = function() {
  20. if (this.readyState == 4) {
  21. assert.equal("0000 803f 0000 a040 0000 c040 0000 e040", logBinary(this.response.toString('binary')));
  22. console.log("done");
  23. }
  24. };
  25. xhr.open("GET", url, false);
  26. xhr.send();
  27. }
  28. function logBinary(data) {
  29. function log(data, idx) {
  30. return data.charCodeAt(idx).toString(16).padStart(2, '0');
  31. }
  32. if (!data) return 'no data';
  33. if (typeof data !== 'string') return 'not a string';
  34. let str = '';
  35. for (let k = 0; k < data.length - 2; k += 2)
  36. str += `${log(data, k)}${log(data, k+1)} `;
  37. if ((data.length % 2) == 0)
  38. str += `${log(data, data.length - 2)}${log(data, data.length - 1)}`;
  39. else
  40. str += `${log(data, data.length - 1)}`;
  41. return str;
  42. }