B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 1|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

AIWROKÈí¼þJSONÇëÇóÍêÕûʾÀý

[¸´ÖÆÁ´½Ó]

1180

Ö÷Ìâ

1185

Ìû×Ó

7997

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7997
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
AIWROKÈí¼þJSONÇëÇóÍêÕûʾÀý


AIWROKÈí¼þJSONÇëÇóÍêÕûʾÀý B2BÍøÂçÈí¼þ

AIWROKÈí¼þJSONÇëÇóÍêÕûʾÀý B2BÍøÂçÈí¼þ

AIWROKÈí¼þJSONÇëÇóÍêÕûʾÀý B2BÍøÂçÈí¼þ

  1. /**
  2. * AIWROK HTTPÇëÇóÍêÕûʾÀý
  3. * ¹¦ÄÜ£ºGET/POSTÇëÇó¡¢³¬Ê±¿ØÖÆ¡¢×Ô¶¯ÖØÊÔ¡¢JSON½âÎö
  4. * ÊÊÓ㺰²×¿ Rhino ES5 ÒýÇæ
  5. */

  6. importClass(java.net.HttpURLConnection);
  7. importClass(java.net.URL);
  8. importClass(java.io.BufferedReader);
  9. importClass(java.io.InputStreamReader);
  10. importClass(java.io.OutputStreamWriter);

  11. // ======================== ¹¤¾ßº¯Êý ========================

  12. /**
  13. * ÊÖ¶¯¹¹½¨ JSON£¨Rhino »·¾³Ï JSON.stringify ¿ÉÄܲ»¿ÉÓã©
  14. */
  15. function toJson(obj) {
  16.     var parts = [];
  17.     for (var key in obj) {
  18.         // Rhino ES5 ϲ»Óà hasOwnProperty£¨Java °ü×°ÀàÐÍûÓÐÕâ¸ö·½·¨£©
  19.         var val = "" + obj[key];
  20.         if (typeof obj[key] === "string" || obj[key] instanceof java.lang.String) {
  21.             val = val.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
  22.             parts.push('"' + key + '":"' + val + '"');
  23.         } else {
  24.             parts.push('"' + key + '":' + val);
  25.         }
  26.     }
  27.     return "{" + parts.join(",") + "}";
  28. }

  29. /**
  30. * ÊÖ¶¯½âÎö JSON£¨Ê¹Óà org.json.JSONObject£©
  31. */
  32. function parseJson(jsonStr) {
  33.     try {
  34.         var jsonObj = new org.json.JSONObject(jsonStr);
  35.         return jsonObj;
  36.     } catch (e) {
  37.         printl("[parseJson] ½âÎöʧ°Ü: " + e.message);
  38.         return null;
  39.     }
  40. }

  41. // ======================== HTTP ¿Í»§¶Ë ========================

  42. /**
  43. * HTTP GET ÇëÇó
  44. * @param {string} url - ÇëÇóµØÖ·
  45. * @param {object} headers - ×Ô¶¨ÒåÇëÇóÍ·
  46. * @param {number} timeout - ³¬Ê±Ê±¼ä£¨ºÁÃ룩
  47. * @returns {object} {code, body, headers, success}
  48. */
  49. function httpGet(url, headers, timeout) {
  50.     headers = headers || {};
  51.     timeout = timeout || 10000;

  52.     try {
  53.         var conn = new URL(url).openConnection();
  54.         conn.setRequestMethod("GET");
  55.         conn.setConnectTimeout(timeout);
  56.         conn.setReadTimeout(timeout);
  57.         conn.setUseCaches(false);

  58.         // ÉèÖÃĬÈÏ User-Agent
  59.         conn.setRequestProperty("User-Agent", "AIWROK/1.0");
  60.         conn.setRequestProperty("Content-Type", "application/json");

  61.         // ÉèÖÃ×Ô¶¨ÒåÇëÇóÍ·
  62.         for (var key in headers) {
  63.             conn.setRequestProperty(key, headers[key]);
  64.         }

  65.         var code = conn.getResponseCode();
  66.         var is = (code >= 200 && code < 300) ? conn.getInputStream() : conn.getErrorStream();

  67.         if (!is) {
  68.             conn.disconnect();
  69.             return { code: code, body: "", success: false };
  70.         }

  71.         var reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  72.         var sb = new java.lang.StringBuilder();
  73.         var line;
  74.         while ((line = reader.readLine()) != null) {
  75.             sb.append(line);
  76.         }
  77.         reader.close();
  78.         conn.disconnect();

  79.         return { code: code, body: sb.toString(), success: code >= 200 && code < 300 };
  80.     } catch (e) {
  81.         return { code: -1, body: "", success: false, error: e.message };
  82.     }
  83. }

  84. /**
  85. * HTTP POST ÇëÇó
  86. * @param {string} url - ÇëÇóµØÖ·
  87. * @param {object} data - POST Êý¾Ý¶ÔÏó
  88. * @param {object} headers - ×Ô¶¨ÒåÇëÇóÍ·
  89. * @param {number} timeout - ³¬Ê±Ê±¼ä£¨ºÁÃ룩
  90. * @returns {object} {code, body, headers, success}
  91. */
  92. function httpPost(url, data, headers, timeout) {
  93.     headers = headers || {};
  94.     timeout = timeout || 10000;

  95.     try {
  96.         var jsonStr = toJson(data);
  97.         var bodyBytes = new java.lang.String(jsonStr).getBytes("UTF-8");

  98.         var conn = new URL(url).openConnection();
  99.         conn.setRequestMethod("POST");
  100.         conn.setDoOutput(true);
  101.         conn.setDoInput(true);
  102.         conn.setConnectTimeout(timeout);
  103.         conn.setReadTimeout(timeout);
  104.         conn.setUseCaches(false);

  105.         conn.setRequestProperty("User-Agent", "AIWROK/1.0");
  106.         conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
  107.         conn.setRequestProperty("Content-Length", "" + bodyBytes.length);

  108.         for (var key in headers) {
  109.             conn.setRequestProperty(key, headers[key]);
  110.         }

  111.         var os = conn.getOutputStream();
  112.         os.write(bodyBytes);
  113.         os.flush();
  114.         os.close();

  115.         var code = conn.getResponseCode();
  116.         var is = (code >= 200 && code < 300) ? conn.getInputStream() : conn.getErrorStream();

  117.         if (!is) {
  118.             conn.disconnect();
  119.             return { code: code, body: "", success: false };
  120.         }

  121.         var reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  122.         var sb = new java.lang.StringBuilder();
  123.         var line;
  124.         while ((line = reader.readLine()) != null) {
  125.             sb.append(line);
  126.         }
  127.         reader.close();
  128.         conn.disconnect();

  129.         return { code: code, body: sb.toString(), success: code >= 200 && code < 300 };
  130.     } catch (e) {
  131.         return { code: -1, body: "", success: false, error: e.message };
  132.     }
  133. }

  134. /**
  135. * ´øÖØÊÔµÄÇëÇó£¨×Ô¶¯ÖØÊÔʧ°ÜµÄÇëÇó£©
  136. */
  137. function httpGetWithRetry(url, headers, timeout, retryCount) {
  138.     retryCount = retryCount || 3;
  139.     for (var i = 0; i < retryCount; i++) {
  140.         printl("[ÖØÊÔ " + (i + 1) + "/" + retryCount + "] GET " + url);
  141.         var result = httpGet(url, headers, timeout);
  142.         if (result.success) return result;
  143.         sleep.millisecond(1000 * (i + 1)); // µÝÔöµÈ´ý
  144.     }
  145.     printl("[ÖØÊÔʧ°Ü] " + url);
  146.     return null;
  147. }

  148. // ======================== ÑÝʾ ========================

  149. function demo() {
  150.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  151.     printl("¨U     AIWROK HTTPÇëÇóÍêÕûʾÀý - ÑÝʾ           ¨U");
  152.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  153.     sleep.millisecond(600);

  154.     // ---- ÑÝʾ 1: GET ÇëÇó ----
  155.     printl("\n&#127760; [1/5] GET ÇëÇó");
  156.     sleep.millisecond(400);
  157.     printl("  ÇëÇó: https://httpbin.org/get?name=AIWROK&version=1.0");
  158.     var getStart = new Date().getTime();
  159.     var getResult = httpGet("https://httpbin.org/get?name=AIWROK&version=1.0");
  160.     var getCost = new Date().getTime() - getStart;
  161.     printl("  ×´Ì¬Âë: " + getResult.code);
  162.     sleep.millisecond(150);
  163.     printl("  ³É¹¦: " + getResult.success + "  (ÓÃʱ " + getCost + "ms)");
  164.     sleep.millisecond(150);
  165.     if (getResult.body) {
  166.         printl("  ÏìÓ¦: " + getResult.body.substring(0, Math.min(180, getResult.body.length())) + "...");
  167.     }
  168.     sleep.millisecond(1200);

  169.     // ---- ÑÝʾ 2: POST ÇëÇó ----
  170.     printl("\n&#128228; [2/5] POST ÇëÇó");
  171.     sleep.millisecond(400);
  172.     var postData = { name: "AIWROK", type: "automation", version: "1.0" };
  173.     printl("  Ìá½»Êý¾Ý: " + toJson(postData));
  174.     var postStart = new Date().getTime();
  175.     var postResult = httpPost("https://httpbin.org/post", postData);
  176.     var postCost = new Date().getTime() - postStart;
  177.     printl("  ×´Ì¬Âë: " + postResult.code);
  178.     sleep.millisecond(150);
  179.     printl("  ³É¹¦: " + postResult.success + "  (ÓÃʱ " + postCost + "ms)");
  180.     sleep.millisecond(150);
  181.     if (postResult.body) {
  182.         printl("  ÏìÓ¦: " + postResult.body.substring(0, Math.min(180, postResult.body.length())) + "...");
  183.     }
  184.     sleep.millisecond(1200);

  185.     // ---- ÑÝʾ 3: ´ø×Ô¶¨ÒåÇëÇóÍ· ----
  186.     printl("\n&#127991;️  [3/5] ´ø×Ô¶¨ÒåÇëÇóÍ·");
  187.     sleep.millisecond(400);
  188.     var customHeaders = { "Authorization": "Bearer test-token-12345", "X-Custom-Header": "my-custom-value" };
  189.     printl("  ÇëÇóÍ·: Authorization + X-Custom-Header");
  190.     var headerStart = new Date().getTime();
  191.     var headerResult = httpGet("https://httpbin.org/headers", customHeaders);
  192.     var headerCost = new Date().getTime() - headerStart;
  193.     printl("  ×´Ì¬Âë: " + headerResult.code + "  (ÓÃʱ " + headerCost + "ms)");
  194.     sleep.millisecond(1200);

  195.     // ---- ÑÝʾ 4: ´íÎóÇëÇó´¦Àí ----
  196.     printl("\n⚠️  [4/5] ´íÎóÇëÇó´¦Àí");
  197.     sleep.millisecond(400);
  198.     printl("  ÇëÇóÒ»¸ö²»´æÔÚµÄÒ³Ãæ...");
  199.     var errorStart = new Date().getTime();
  200.     var errorResult = httpGet("https://httpbin.org/status/404");
  201.     var errorCost = new Date().getTime() - errorStart;
  202.     printl("  ×´Ì¬Âë: " + errorResult.code);
  203.     sleep.millisecond(150);
  204.     printl("  ³É¹¦: " + errorResult.success + "  (ÓÃʱ " + errorCost + "ms)");
  205.     sleep.millisecond(1200);

  206.     // ---- ÑÝʾ 5: ³¬Ê±¿ØÖÆ ----
  207.     printl("\n⏱️  [5/5] ³¬Ê±¿ØÖÆ (3Ãë)");
  208.     sleep.millisecond(400);
  209.     printl("  ÇëÇó»áÑÓ³Ù 5 ÃëµÄ½Ó¿Ú£¬³¬Ê±ÉèÖà 3 Ãë...");
  210.     var timeoutStart = new Date().getTime();
  211.     var timeoutResult = httpGet("https://httpbin.org/delay/5", null, 3000);
  212.     var timeoutCost = new Date().getTime() - timeoutStart;
  213.     printl("  ÓÃʱ: " + timeoutCost + " ms");
  214.     sleep.millisecond(150);
  215.     if (timeoutResult && timeoutResult.success) {
  216.         printl("  ✓ ÇëÇó³É¹¦  ×´Ì¬Âë: " + timeoutResult.code);
  217.     } else if (timeoutResult && timeoutResult.code === -1 && timeoutCost >= 3000) {
  218.         printl("  ⏱️ ´¥·¢³¬Ê±£¨Ô¤ÆÚÐÐΪ£©  ×´Ì¬Âë: -1");
  219.     } else {
  220.         printl("  ✗ ÇëÇóʧ°Ü  ×´Ì¬Âë: " + (timeoutResult ? timeoutResult.code : "-1"));
  221.     }
  222.     sleep.millisecond(600);

  223.     printl("\n¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  224.     printl("¨U            È«²¿ÑÝʾÍê³É£¡                     ¨U");
  225.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  226. }

  227. demo();
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-9-23 06:58 , Processed in 0.106976 second(s), 33 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí