1import{c as e,f as t,h as n,i as r,l as i,m as a,o,s,t as c}from"./app-0AW3q8hk.js";import"./addLibrary-6EU7Gjv9.js";import"./console-CJzKnOMf.js";var l=JSON.parse(`{"path":"/guide/script.html","title":"èæ¬","lang":"zh-CN","frontmatter":{"title":"èæ¬","icon":"code-box-fill","headerDepth":4,"toc":{"levels":[2,6]},"description":"èæ¬çä½ç¨: å¼åè
å¯ä»¥å©ç¨ Groovy èæ¬æ¥èªå®ä¹ä¸äºé»è¾,ä»èä½¿å¾ api æ´å çµæ´»,ä¾å¦å¯¹åæ°è¿è¡å¨æå å¯ç¾å,æ¾å
¥ header,è䏿¯ç´æ¥åæ»ãèæ¬å
æ¬åç½®èæ¬ååç½®èæ¬ã å®ç°ææ¯: Groovy çå° Groovy ä¸çæè¯·ä¸è¦æ
,è¯æ³å Java å ä¹ä¸è´(Java å°±æ¯é¦,æå¨ä¸ä¸ªç头) èæ¬æµç¨å¾ åç½®èæ¬ 卿§è¡è¯·æ±ä¹åæ§è¡,...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"èæ¬\\",\\"image\\":[\\"https://api-buddy.com/img/script.svg\\",\\"https://api-buddy.com/img/script.png\\",\\"https://api-buddy.com/img/2022.2.5/console.png\\",\\"https://api-buddy.com/img/2024.1.5/addLibrary.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptDonate.png\\"],\\"dateModified\\":\\"2026-08-03T12:13:12.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/script.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"èæ¬"}],["meta",{"property":"og:description","content":"èæ¬çä½ç¨: å¼åè
å¯ä»¥å©ç¨ Groovy èæ¬æ¥èªå®ä¹ä¸äºé»è¾,ä»èä½¿å¾ api æ´å çµæ´»,ä¾å¦å¯¹åæ°è¿è¡å¨æå å¯ç¾å,æ¾å
¥ header,è䏿¯ç´æ¥åæ»ãèæ¬å
æ¬åç½®èæ¬ååç½®èæ¬ã å®ç°ææ¯: Groovy çå° Groovy ä¸çæè¯·ä¸è¦æ
,è¯æ³å Java å ä¹ä¸è´(Java å°±æ¯é¦,æå¨ä¸ä¸ªç头) èæ¬æµç¨å¾ åç½®èæ¬ 卿§è¡è¯·æ±ä¹åæ§è¡,..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/script.svg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2026-08-03T12:13:12.000Z"}],["meta",{"property":"article:modified_time","content":"2026-08-03T12:13:12.000Z"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/script.html"}]]},"git":{"createdTime":1785368971000,"updatedTime":1785759192000,"contributors":[{"name":"kings1990","username":"","email":"[email protected]","commits":2},{"name":"kings","username":"","email":"[email protected]","commits":2}]},"readingTime":{"minutes":5.49,"words":1647},"filePathRelative":"guide/script.md","autoDesc":true}`),u={name:`script.md`},d={id:`request`,tabindex:`-1`},f={class:`header-anchor`,href:`#request`},p={id:`response`,tabindex:`-1`},m={class:`header-anchor`,href:`#response`},h={id:`rfr`,tabindex:`-1`},g={class:`header-anchor`,href:`#rfr`},_={id:`rfr-request`,tabindex:`-1`},v={class:`header-anchor`,href:`#rfr-request`},y={id:`rfr-response`,tabindex:`-1`},b={class:`header-anchor`,href:`#rfr-response`},x={id:`rfr-projectheader`,tabindex:`-1`},S={class:`header-anchor`,href:`#rfr-projectheader`},C={id:`rfr-apiheader`,tabindex:`-1`},w={class:`header-anchor`,href:`#rfr-apiheader`},T={id:`rfr-currentprojectname`,tabindex:`-1`},E={class:`header-anchor`,href:`#rfr-currentprojectname`},D={id:`rfr-currentenvname`,tabindex:`-1`},O={class:`header-anchor`,href:`#rfr-currentenvname`},k={id:`rfr-currentdomain`,tabindex:`-1`},A={class:`header-anchor`,href:`#rfr-currentdomain`},j={id:`rfr-currentmodulename`,tabindex:`-1`},M={class:`header-anchor`,href:`#rfr-currentmodulename`},N={id:`rfr-environment`,tabindex:`-1`},P={class:`header-anchor`,href:`#rfr-environment`},F={id:`console`,tabindex:`-1`},I={class:`header-anchor`,href:`#console`},L={id:`_4-ç´æ¥å¼ç¨é¡¹ç®ä¸çç±»`,tabindex:`-1`},R={class:`header-anchor`,href:`#_4-ç´æ¥å¼ç¨é¡¹ç®ä¸çç±»`};function z(c,l,u,z,B,V){let H=a(`Badge`),U=a(`ColorIcon`),W=a(`RouteLink`);return t(),o(`div`,null,[l[23]||=s(`<p><strong>èæ¬çä½ç¨</strong>: å¼åè
å¯ä»¥å©ç¨ Groovy èæ¬æ¥èªå®ä¹ä¸äºé»è¾,ä»èä½¿å¾ api æ´å çµæ´»,ä¾å¦å¯¹åæ°è¿è¡å¨æå å¯ç¾å,æ¾å
¥ header,è䏿¯ç´æ¥åæ»ãèæ¬å
æ¬åç½®èæ¬ååç½®èæ¬ã</p><p><strong>å®ç°ææ¯</strong>: <a href="https://groovy-lang.org/" target="_blank" rel="noopener noreferrer">Groovy</a></p><p>çå° Groovy ä¸çæè¯·<mark>ä¸è¦æ
</mark>,è¯æ³å Java å ä¹ä¸è´(Java å°±æ¯é¦,æå¨ä¸ä¸ªç头)</p><h2 id="èæ¬æµç¨å¾" tabindex="-1"><a class="header-anchor" href="#èæ¬æµç¨å¾"><span>èæ¬æµç¨å¾</span></a></h2><p><img src="/img/script.svg" alt="" loading="lazy"></p><h2 id="åç½®èæ¬" tabindex="-1"><a class="header-anchor" href="#åç½®èæ¬"><span>åç½®èæ¬</span></a></h2><p>卿§è¡è¯·æ±ä¹åæ§è¡,å¯ä»¥å¨è¿é对请æ±çåæ°è¿è¡å¤ç,ä¾å¦å å¯ãç¾åãå¨æä¿®æ¹ header ççã</p><h2 id="åç½®èæ¬" tabindex="-1"><a class="header-anchor" href="#åç½®èæ¬"><span>åç½®èæ¬</span></a></h2><p>å¨è¯·æ±æ§è¡å®æä¹åæ§è¡,å¯ä»¥å¨è¿é对ååºçç»æè¿è¡å¤ç,ä¾å¦æå tokenãå¨æä¿®æ¹ header ççã</p><h2 id="æ§è¡ä¼å
级" tabindex="-1"><a class="header-anchor" href="#æ§è¡ä¼å
级"><span>æ§è¡ä¼å
级</span></a></h2><p>项ç®çº§å«åç½®èæ¬ > å API åç½®èæ¬ -> 项ç®çº§å«åç½®èæ¬ -> å API åç½®èæ¬</p><h2 id="æµè¯é¡¹ç®" tabindex="-1"><a class="header-anchor" href="#æµè¯é¡¹ç®"><span>æµè¯é¡¹ç®</span></a></h2><p><a href="https://github.com/kings1990/fast-request-samples" target="_blank" rel="noopener noreferrer">https://github.com/kings1990/fast-request-samples</a></p><h2 id="å
ç½®åé" tabindex="-1"><a class="header-anchor" href="#å
ç½®åé"><span>å
ç½®åé</span></a></h2><div class="hint-container caution"><p class="hint-container-title">注æ</p><p>å¼åè
å¨èªå·±ç¼è¾çèæ¬ä¸,åºè¯¥æ³¨æå
ç½®åé已被声æ,è䏿¯åå» new ä¸ä¸ª Request æè
Response 对象,å¯¹è±¡åæ¯ request æè
response,å¦åå¯è½ä¼é æä¸å¯é¢æçé误</p></div><p>æä»¶åºå±éç¨<a href="https://hutool.cn/" target="_blank" rel="noopener noreferrer">hutool</a>ç<code>cn.hutool.http.HttpRequest</code>æ¥å®ç°è¯·æ±çåé</p>`,16),r(`h3`,d,[r(`a`,f,[r(`span`,null,[l[0]||=e(`request `,-1),i(H,{text:`2022.2.3ï¸`,type:`tip`}),l[1]||=e(),i(H,{text:`åºå¼ï¸`,type:`danger`})])])]),l[24]||=r(`p`,null,[e(`åºå¼: `),r(`strong`,null,[e(`ä½¿ç¨ `),r(`code`,null,`rfr.request`),e(` 代æ¿`)])],-1),l[25]||=r(`ul`,null,[r(`li`,null,`ä½ç¨: å
å«äºè¯·æ±ç¸å
³çä¿¡æ¯,ä¾å¦ urlãheaderãbodyãåç§åæ°`),r(`li`,null,`ç±»å: cn.hutool.http.HttpRequest`)],-1),l[26]||=r(`p`,null,`å¯ä»¥éè¿ä¿®æ¹ request 弿¥å¨æè°æ´åæ°`,-1),r(`h3`,p,[r(`a`,m,[r(`span`,null,[l[2]||=e(`response `,-1),i(H,{text:`2022.2.3ï¸`,type:`tip`}),l[3]||=e(),i(H,{text:`åºå¼ï¸`,type:`danger`})])])]),l[27]||=r(`p`,null,[e(`åºå¼: `),r(`strong`,null,[e(`ä½¿ç¨ `),r(`code`,null,`rfr.response`),e(` 代æ¿`)])],-1),l[28]||=r(`ul`,null,[r(`li`,null,`ä½ç¨: å
å«äºè¯·æ±ååºçä¿¡æ¯`),r(`li`,null,`ç±»å: cn.hutool.http.HttpResponse`)],-1),l[29]||=r(`p`,null,`å¯ä»¥éè¿ response 弿¥è·åååºçç»æ`,-1),r(`h3`,h,[r(`a`,g,[r(`span`,null,[l[4]||=e(`rfr `,-1),i(H,{text:`2022.2.3ï¸`,type:`tip`})])])]),l[30]||=r(`ul`,null,[r(`li`,null,`ä½ç¨: å
å«äºè·æä»¶äº¤äºç¸å
³çä¸äºå±æ§,ç¨äºåæå®å¶`)],-1),r(`h4`,_,[r(`a`,v,[r(`span`,null,[l[5]||=e(`rfr.request `,-1),i(H,{text:`2024.1.7ï¸`,type:`tip`})])])]),l[31]||=r(`ul`,null,[r(`li`,null,`ä½ç¨: å
å«äºè¯·æ±ç¸å
³çä¿¡æ¯,ä¾å¦ urlãheaderãbodyãåç§åæ°`),r(`li`,null,`ç±»å: cn.hutool.http.HttpRequest`)],-1),l[32]||=r(`p`,null,`å¯ä»¥éè¿ä¿®æ¹ request 弿¥å¨æè°æ´åæ°`,-1),r(`h4`,y,[r(`a`,b,[r(`span`,null,[l[6]||=e(`rfr.response `,-1),i(H,{text:`2024.1.7ï¸`,type:`tip`})])])]),l[33]||=r(`ul`,null,[r(`li`,null,`ä½ç¨: å
å«äºè¯·æ±ååºçä¿¡æ¯`),r(`li`,null,`ç±»å: cn.hutool.http.HttpResponse`)],-1),r(`h4`,x,[r(`a`,S,[r(`span`,null,[l[7]||=e(`rfr.projectHeader `,-1),i(H,{text:`2022.2.3ï¸`,type:`tip`})])])]),l[34]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;
1color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å å«äºé¡¹ç®çº§å«å¤´,å¯ä»¥éè¿ä¿®æ¹æ¥å¨æå¾UIéé¢è®¾ç½®å¼</span></span> 2<span class="line"><span>ç±»å: java.util.LinkedHashMap<String,String></span></span></code></pre></div>`,1),r(`h4`,C,[r(`a`,w,[r(`span`,null,[l[8]||=e(`rfr.apiHeader `,-1),i(H,{text:`2022.2.3ï¸`,type:`tip`})])])]),l[35]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å å«äºæ¨¡å级å«å¤´,å¯ä»¥éè¿ä¿®æ¹æ¥å¨æå¾UIéé¢è®¾ç½®å¼</span></span> 3<span class="line"><span>ç±»å: java.util.LinkedHashMap<String,String></span></span></code></pre></div>`,1),r(`h4`,T,[r(`a`,E,[r(`span`,null,[l[9]||=e(`rfr.currentProjectName `,-1),i(H,{text:`2022.2.5ï¸`,type:`tip`})])])]),l[36]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å½å䏿æ¡éæ©ç项ç®å</span></span> 4<span class="line"><span>ç±»å: java.lang.String</span></span></code></pre></div>`,1),r(`h4`,D,[r(`a`,O,[r(`span`,null,[l[10]||=e(`rfr.currentEnvName `,-1),i(H,{text:`2022.2.5ï¸`,type:`tip`})])])]),l[37]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å½å䏿æ¡éæ©çç¯å¢åç§°</span></span> 5<span class="line"><span>ç±»å: java.lang.String</span></span></code></pre></div>`,1),r(`h4`,k,[r(`a`,A,[r(`span`,null,[l[11]||=e(`rfr.currentDomain `,-1),i(H,{text:`2022.3.1ï¸`,type:`tip`})])])]),l[38]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å½åä½ç¨çåå</span></span> 6<span class="line"><span>ç±»å: java.lang.String</span></span></code></pre></div>`,1),r(`h4`,j,[r(`a`,M,[r(`span`,null,[l[12]||=e(`rfr.currentModuleName `,-1),i(H,{text:`2023.1.3ï¸`,type:`tip`})])])]),l[39]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å½åAPIçæ¨¡åå</span></span> 7<span class="line"><span>ç±»å: java.lang.String</span></span></code></pre></div>`,1),r(`h4`,N,[r(`a`,P,[r(`span`,null,[l[13]||=e(`rfr.environment `,-1),i(H,{text:`2023.1.8`,type:`tip`})])])]),l[40]||=s(`<div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>ä½ç¨: å½åç¯å¢çåé</span></span> 8<span class="line"><span>ç±»å: java.util.LinkedHashMap<String,String></span></span></code></pre></div><h2 id="å¼å ¥ç¬¬ä¸æ¹-jar" tabindex="-1"><a class="header-anchor" href="#å¼å ¥ç¬¬ä¸æ¹-jar"><span>å¼å ¥ç¬¬ä¸æ¹ Jar</span></a></h2><div class="hint-container tip"><p class="hint-container-title">å ç½®ç Jar</p><div class="language-" data-highlighter="shiki" data-ext="" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-"><span class="line"><span>com.alibaba:fastjson:1.2.78</span></span> 9<span class="line"><span>cn.hutool:hutool-all:5.8.5</span></span> 10<span class="line"><span>com.google.guava:guava:30.1.1-jre</span></span></code></pre></div><p>Jar ççæ¬ä¼ä¸å®ææ´æ°,妿åç° bug 请èç³»ä½è è¦æ±ä½è å级</p><p>å¼åè å¯ä»¥å©ç¨ä»¥ä¸ 3 个 Jar ææä¾çå·¥å ·æ¹æ³,ç´æ¥å¨èæ¬ä¸å¼ç¨,ä¸éè¦åä¾èµç¬¬ä¸æ¹ç Jar(hutool å°±æ¯é¦,å·²ç»å å ¥è®¸å¤å·¥å ·ç±»)</p><p>åå¾<a href="#demo">Demo</a>æ¥çå¦ä½è·å¾<a href="https://www.jetbrains.com/help/idea/auto-completing-code.html" target="_blank" rel="noopener noreferrer">Code completion</a>åè½</p></div><ul class="task-list-container"><li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" id="task-item-0" checked="checked" disabled="disabled"><label class="task-list-item-label" for="task-item-0"> å¼å ¥ jar(maven å½¢å¼)</label></li></ul><p>ä¸è½½ jar å¯è½ä¼éè¦è±è´¹é¢å¤çæ¶é´</p><div class="language-groovy" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;
10color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#C678DD;">@Grab</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"org.apache.commons:commons-lang3:3.12.0"</span><span style="color:#ABB2BF;">)</span></span> 11<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.commons.lang3.StringUtils</span></span> 12<span class="line"></span> 13<span class="line"><span style="color:#C678DD;">String</span><span style="color:#E06C75;"> debug</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> request.</span><span style="color:#61AFEF;">header</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"debug"</span><span style="color:#ABB2BF;">)</span></span> 14<span class="line"><span style="color:#C678DD;">if</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">StringUtils</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">isNotBlank</span><span style="color:#ABB2BF;">(debug)){</span></span> 15<span class="line"><span style="color:#7F848E;font-style:italic;"> //some logic</span></span> 16<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre></div><ul class="task-list-container"><li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" id="task-item-1" checked="checked" disabled="disabled"><label class="task-list-item-label" for="task-item-1"> å¼å ¥ jar(éè¿æ¬å° jar)</label></li></ul><div class="language-groovy" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#7F848E;font-style:italic;">//æ³¨ææ¤å¤çfile:åç¼</span></span> 17<span class="line"><span style="color:#E5C07B;">this</span><span style="color:#ABB2BF;">.class.classLoader.</span><span style="color:#61AFEF;">addURL</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">new</span><span style="color:#C678DD;"> URL</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"file:/path/to/jar"</span><span style="color:#ABB2BF;">))</span></span> 18<span class="line"><span style="color:#C678DD;">def</span><span style="color:#E06C75;"> StringUtils</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> Class</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">forName</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"org.apache.commons.lang3.StringUtils"</span><span style="color:#ABB2BF;">).</span><span style="color:#61AFEF;">getDeclaredConstructor</span><span style="color:#ABB2BF;">().</span><span style="color:#61AFEF;">newInstance</span><span style="color:#ABB2BF;">()</span></span> 19<span class="line"></span> 20<span class="line"><span style="color:#C678DD;">String</span><span style="color:#E06C75;"> debug</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> request.</span><span style="color:#61AFEF;">header</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"debug"</span><span style="color:#ABB2BF;">)</span><span style="color:#7F848E;font-style:italic;">//è·åheader</span></span> 21<span class="line"><span style="color:#C678DD;">if</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">StringUtils</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">isNotBlank</span><span style="color:#ABB2BF;">(debug)){</span></span> 22<span class="line"><span style="color:#7F848E;font-style:italic;"> //some logic</span></span> 23<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre></div><h2 id="ä½ç¨èå´ä¸é¡ºåº" tabindex="-1"><a class="header-anchor" href="#ä½ç¨èå´ä¸é¡ºåº"><span>ä½ç¨èå´ä¸é¡ºåº</span></a></h2>`,9),r(`p`,null,[l[15]||=e(`å为`,-1),l[16]||=r(`code`,null,`项ç®çº§å«`,-1),l[17]||=e(`å`,-1),l[18]||=r(`code`,null,`åAPI级å«`,-1),l[19]||=e(`ï¼é¡¹ç®å ¨å±ä½ç¨éè¦ç¹å» `,-1),i(W,{to:`/guide/features/projectValueConfig.html`},{default:n(()=>[i(U,{icon:`quanjucanshu`}),l[14]||=e(` 项ç®çº§å«å ¨å±åæ°æ¯æ`,-1)]),_:1}),l[20]||=e(` è¿è¡é ç½®`,-1)]),l[41]||=r(`p`,null,`项ç®çº§å«å°ä½ç¨é¡¹ç®ä¸ææç APIï¼å API 级å«åªä½ç¨äºå个 APIã`,-1),l[42]||=r(`p`,null,[e(`æ§è¡é¡ºåºï¼`),r(`code`,null,`项ç®çº§å«`),e(`->`),r(`code`,null,`åAPI级å«`)],-1),l[43]||=r(`p`,null,[r(`img`,{src:`/img/script.png`,alt:`scriptScope`,loading:`lazy`})],-1),r(`h2`,F,[r(`a`,I,[r(`span`,null,[l[21]||=e(`Console `,-1),i(H,{text:`2022.2.5`,type:`tip`})])])]),l[44]||=s(`<p>Console 帮å©å¼åè æå°ä¸äºä½ æ³è¦çä¿¡æ¯</p><div class="language-groovy" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;
23color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#61AFEF;">info</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"info"</span><span style="color:#ABB2BF;">)</span></span> 24<span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#56B6C2;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"print info"</span><span style="color:#ABB2BF;">)</span></span> 25<span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#61AFEF;">warn</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"warn"</span><span style="color:#ABB2BF;">)</span></span> 26<span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#61AFEF;">success</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"success"</span><span style="color:#ABB2BF;">)</span></span> 27<span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#61AFEF;">error</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"error"</span><span style="color:#ABB2BF;">)</span></span></code></pre></div><p><img src="/img/2022.2.5/console.png" alt="console" loading="lazy"></p><h2 id="demo" tabindex="-1"><a class="header-anchor" href="#demo"><span>Demo</span></a></h2><div class="hint-container tip"><p class="hint-container-title">Code completionæ¯æ</p><p>å¨é¡¹ç®ä¸å å ¥å¦ä¸ä¾èµ(å¦ææ²¡æ),å³å¯å¨ç¼è¾å¨èæ¬ä¸å¤çé对æä»¶æ ¸å¿ç±»ç<a href="https://www.jetbrains.com/help/idea/auto-completing-code.html" target="_blank" rel="noopener noreferrer">Code completion</a>åè½(å¿«éå¯¼å ¥ç±»(import)ãå¾å°æ¹æ³æç¤ºçæä½)</p><p><img src="/img/2024.1.5/addLibrary.png" alt="" loading="lazy"></p></div><h3 id="_1-ç¾ååæ°" tabindex="-1"><a class="header-anchor" href="#_1-ç¾ååæ°"><span>1. ç¾ååæ°</span></a></h3><p>å¨ä½ çæ¬å°æ°å»ºä¸ä¸ª xxx.groovy æä»¶,ç²è´´ä»¥ä¸ä»£ç ,éå½ä¿®æ¹å,è½ä¿è¯æ¬å°å¯ä»¥æ£å¸¸è¿è¡,åæä»£ç ç²è´´å°èæ¬ä¸</p>`,7),r(`ul`,null,[r(`li`,null,[i(H,{text:`注ææç»èæ¬éè¦å é¤è¿è¡ä»£ç `,type:`danger`})])]),l[45]||=s(`<p><s>HttpRequest request = HttpUtil.createPost("http://localhost:8081/book/add")</s></p><div class="language-groovy line-numbers-mode" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.CharsetUtil</span></span> 28<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.StrUtil</span></span> 29<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.crypto.digest.DigestUtil</span></span> 30<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpRequest</span></span> 31<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpUtil</span></span> 32<span class="line"></span> 33<span class="line"><span style="color:#7F848E;font-style:italic;">//èæ¬é»è¾æ£å¼å¼å§</span></span> 34<span class="line"><span style="color:#C678DD;">String</span><span style="color:#E06C75;"> body</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> StrUtil</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">str</span><span style="color:#ABB2BF;">(request.</span><span style="color:#61AFEF;">bodyBytes</span><span style="color:#ABB2BF;">(), </span><span style="color:#C678DD;">CharsetUtil</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">CHARSET_UTF_8</span><span style="color:#ABB2BF;">)</span></span> 35<span class="line"><span style="color:#ABB2BF;">body </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> "xxxx"</span><span style="color:#7F848E;font-style:italic;">//just for test</span></span> 36<span class="line"><span style="color:#C678DD;">String</span><span style="color:#E06C75;"> sign</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> DigestUtil</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">md5Hex</span><span style="color:#ABB2BF;">(body)</span></span> 37<span class="line"><span style="color:#ABB2BF;">request.</span><span style="color:#61AFEF;">header</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"sign"</span><span style="color:#ABB2BF;">,sign)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_2-å©ç¨æä¸ä¸ªè¯·æ±çååºå å½è¯·æ±ç-header-åæ°" tabindex="-1"><a class="header-anchor" href="#_2-å©ç¨æä¸ä¸ªè¯·æ±çååºå å½è¯·æ±ç-header-åæ°"><span>2. å©ç¨æä¸ä¸ªè¯·æ±çååºå å½è¯·æ±ç Header åæ°</span></a></h3><p>注æè·å token çé»è¾å¾ç»åæ¥å£è¿åçæ°æ®ç»ææ¥å¤çãä¾å¦è¿å</p><div class="language-json" data-highlighter="shiki" data-ext="json" style="background-color:#282c34;
37color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="color:#ABB2BF;">{</span></span> 38<span class="line"><span style="color:#E06C75;"> "success"</span><span style="color:#ABB2BF;">: </span><span style="color:#D19A66;">true</span><span style="color:#ABB2BF;">,</span></span> 39<span class="line"><span style="color:#E06C75;"> "code"</span><span style="color:#ABB2BF;">: </span><span style="color:#D19A66;">200</span><span style="color:#ABB2BF;">,</span></span> 40<span class="line"><span style="color:#E06C75;"> "data"</span><span style="color:#ABB2BF;">: {</span></span> 41<span class="line"><span style="color:#E06C75;"> "token"</span><span style="color:#ABB2BF;">: </span><span style="color:#98C379;">"xxxxx"</span></span> 42<span class="line"><span style="color:#ABB2BF;"> }</span></span> 43<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre></div><p>åéè¦è¿ä¹å <code>JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")</code></p><div class="language-groovy line-numbers-mode" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.CharsetUtil</span></span> 44<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.StrUtil</span></span> 45<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.crypto.digest.DigestUtil</span></span> 46<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpRequest</span></span> 47<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpResponse</span></span> 48<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpUtil</span></span> 49<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> com.alibaba.fastjson.JSON</span></span> 50<span class="line"></span> 51<span class="line"><span style="color:#C678DD;">HttpRequest</span><span style="color:#E06C75;"> myRequest</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> HttpUtil</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">createPost</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"http://localhost:8081/api/v1.0/login"</span><span style="color:#ABB2BF;">)</span></span> 52<span class="line"><span style="color:#C678DD;">HttpResponse</span><span style="color:#E06C75;"> myResponse</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> myRequest.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">()</span></span> 53<span class="line"><span style="color:#C678DD;">if</span><span style="color:#ABB2BF;">(myResponse.</span><span style="color:#61AFEF;">isOk</span><span style="color:#ABB2BF;">()){</span></span> 54<span class="line"><span style="color:#C678DD;"> String</span><span style="color:#ABB2BF;"> token </span><span style="color:#56B6C2;">=</span><span style="color:#D19A66;"> JSON</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">parseObject</span><span style="color:#ABB2BF;">(myResponse.</span><span style="color:#61AFEF;">body</span><span style="color:#ABB2BF;">()).</span><span style="color:#61AFEF;">getString</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"token"</span><span style="color:#ABB2BF;">)</span></span> 55<span class="line"><span style="color:#ABB2BF;"> request.</span><span style="color:#61AFEF;">header</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"token"</span><span style="color:#ABB2BF;">,token)</span></span> 56<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_3-设置ä¸ä¸ªenvironmentåé" tabindex="-1"><a class="header-anchor" href="#_3-设置ä¸ä¸ªenvironmentåé"><span>3. 设置ä¸ä¸ªEnvironmentåé</span></a></h3><p>åå®ååºæ¥ææ ¼å¼</p><div class="language-json" data-highlighter="shiki" data-ext="json" style="background-color:#282c34;
56color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="color:#ABB2BF;">{</span></span> 57<span class="line"><span style="color:#E06C75;"> "success"</span><span style="color:#ABB2BF;">: </span><span style="color:#D19A66;">true</span><span style="color:#ABB2BF;">,</span></span> 58<span class="line"><span style="color:#E06C75;"> "code"</span><span style="color:#ABB2BF;">: </span><span style="color:#D19A66;">200</span><span style="color:#ABB2BF;">,</span></span> 59<span class="line"><span style="color:#E06C75;"> "data"</span><span style="color:#ABB2BF;">: {</span></span> 60<span class="line"><span style="color:#E06C75;"> "token"</span><span style="color:#ABB2BF;">: </span><span style="color:#98C379;">"xxxxx"</span></span> 61<span class="line"><span style="color:#ABB2BF;"> }</span></span> 62<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre></div><p>å¨åç½®èæ¬ä¸æ¤å ¥ä»¥ä¸ä»£ç </p><div class="language-groovy line-numbers-mode" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.CharsetUtil</span></span> 63<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.core.util.StrUtil</span></span> 64<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.crypto.digest.DigestUtil</span></span> 65<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpRequest</span></span> 66<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpResponse</span></span> 67<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> cn.hutool.http.HttpUtil</span></span> 68<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> com.alibaba.fastjson.JSON</span></span> 69<span class="line"></span> 70<span class="line"><span style="color:#C678DD;">HttpRequest</span><span style="color:#E06C75;"> myRequest</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> HttpUtil</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">createPost</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"http://localhost:8081/api/v1.0/login"</span><span style="color:#ABB2BF;">)</span></span> 71<span class="line"><span style="color:#C678DD;">HttpResponse</span><span style="color:#E06C75;"> myResponse</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> myRequest.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">()</span></span> 72<span class="line"><span style="color:#C678DD;">if</span><span style="color:#ABB2BF;">(myResponse.</span><span style="color:#61AFEF;">isOk</span><span style="color:#ABB2BF;">()){</span></span> 73<span class="line"><span style="color:#C678DD;"> String</span><span style="color:#ABB2BF;"> token </span><span style="color:#56B6C2;">=</span><span style="color:#D19A66;"> JSON</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">parseObject</span><span style="color:#ABB2BF;">(myResponse.</span><span style="color:#61AFEF;">body</span><span style="color:#ABB2BF;">()).</span><span style="color:#61AFEF;">getJSONObject</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"data"</span><span style="color:#ABB2BF;">).</span><span style="color:#61AFEF;">getString</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"token"</span><span style="color:#ABB2BF;">)</span></span> 74<span class="line"><span style="color:#ABB2BF;"> rfr.environment.</span><span style="color:#61AFEF;">put</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">"token"</span><span style="color:#ABB2BF;">,token)</span></span> 75<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,12),r(`h3`,L,[r(`a`,R,[r(`span`,null,[l[22]||=e(`4.ç´æ¥å¼ç¨é¡¹ç®ä¸çç±» `,-1),i(H,{text:`2026.1.1`,type:`info`})])])]),l[46]||=s(`<div class="language-groovy" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;
75color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> com.example.YourClass</span></span> 76<span class="line"></span> 77<span class="line"><span style="color:#C678DD;">def</span><span style="color:#E06C75;"> value</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> YourClass</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">someMethod</span><span style="color:#ABB2BF;">()</span></span> 78<span class="line"><span style="color:#ABB2BF;">console.</span><span style="color:#61AFEF;">info</span><span style="color:#ABB2BF;">(value)</span></span></code></pre></div><p>Script ä¼èªå¨å è½½å½å API æå±æ¨¡åçç¼è¯è¾åºåè¿è¡æ¶ä¾èµï¼å¯ä»¥ç´æ¥å¯¼å ¥æ¬å°é¡¹ç®ç±»å¹¶è°ç¨ç±»ä¸çæ¹æ³ã使ç¨å请å ç¼è¯é¡¹ç®ï¼ç¡®ä¿ç®æ ç±»åå ¶ä¾èµå·²çæï¼æ éæå¨æå® <code>target/classes</code> çç»å¯¹è·¯å¾ã</p><h2 id="注æç¹" tabindex="-1"><a class="header-anchor" href="#注æç¹"><span>注æç¹</span></a></h2><ul><li>Groovy èæ¬å¯¹ <mark>;</mark> 䏿æ,Java ç¨;ä½ä¸ºè¯å¥ä»£ç çç»æ,Groovy ç¨æ¢è¡è¡¨ç¤ºä¸å¥ä»£ç çç»æ</li><li>å ç½®åéå·²è¢«ç³æ,ä¾å¦ Demo2 ä¸éè¦é¢å¤æ°å»ºä¸ä¸ªè¯·æ±,åéå½åéè¦æ³¨æä¸è½ä¸å ç½®åéç¸å</li></ul><h2 id="èæ¬æç¨¿" tabindex="-1"><a class="header-anchor" href="#èæ¬æç¨¿"><span>èæ¬æç¨¿ ð</span></a></h2><p>为äºå°èæ¬åçæ´å 强大,è¯è®ºåºå¼æ¾ç¤¾åºèæ¬æé,欢è¿å°å¼ºå¤§èæ¬éè¿<strong>䏿¹çè¨</strong> çå½¢å¼ä¸æ¥,让æ´å¤äººä½¿ç¨ä½ å¼åçèæ¬</p><ul><li>æ ¼å¼</li></ul><div class="language-groovy" data-highlighter="shiki" data-ext="groovy" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-groovy"><span class="line"><span style="color:#7F848E;font-style:italic;">/**</span></span> 79<span class="line"><span style="color:#7F848E;font-style:italic;"> * ä½è :Kings</span></span> 80<span class="line"><span style="color:#7F848E;font-style:italic;"> * 主页:https://github.com/kings1990</span></span> 81<span class="line"><span style="color:#7F848E;font-style:italic;"> * åè½:xxxxx</span></span> 82<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span> 83<span class="line"></span> 84<span class="line"><span style="color:#7F848E;font-style:italic;">//èæ¬å 容</span></span> 85<span class="line"><span style="color:#ABB2BF;">....</span></span></code></pre></div><p><img src="/img/2022.2.3/scriptDonate.png" alt="scriptDonate" loading="lazy"></p>`,9)])}var B=c(u,[[`render`,z]]);export{l as _pageData,B as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.