<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          smartpostHTTP 請求代理工具

          聯(lián)合創(chuàng)作 · 2023-09-20 11:02

          該項(xiàng)目是一個(gè)HTTP請求代理工具,可以實(shí)現(xiàn)錄入請求信息管理,請求組合,將會(huì)自動(dòng)保存請求服務(wù)返回的cookie 當(dāng)組合多個(gè)請求的時(shí)候,如何請求返回的cookie信息將會(huì)在后面的請求中返回給服務(wù)端。 是為了方便給restful接口進(jìn)行測試而設(shè)計(jì)開發(fā)的。當(dāng)前只滿足基本功能,后續(xù)將會(huì)繼續(xù)再次基礎(chǔ)上面進(jìn)行完善。

          已經(jīng)部署在 PaaS@OSC:http://smartpost.oschina.mopaas.com/ 

          主要功能介紹

          基礎(chǔ)信息的錄入

          該部分功能主要是將請求信息錄入到smartpost中,錄入的信息包括http請求頭部信息,請求方式POST/GET以及請求的參數(shù)。

          請求參數(shù)設(shè)置說明

          smartpost對請求參數(shù)支持form表達(dá)提交的數(shù)據(jù),該參數(shù)是鍵值對的形式,如果是POST那么將會(huì)以key1=value1的形式提交到服 務(wù)器端,如果是GET形式,則鍵值對參數(shù)追加到請求地址后面。除了form表單參數(shù)提交外,還支持json,xml,html以及text的格式參數(shù)。如 果選中json,那么發(fā)送給服務(wù)器端的Content-type就是application/json;charset=UTF-8,依次類推:xml則 是application/xml;charset=UTF-8;text:text/plain;charset=UTF-8;html:text /html;charset=UTF-8。所以選中非form的參數(shù)類型以后,不需要再在header里面設(shè)置Content-type屬性,除非你有特 殊的需求。

          場景

          我們在開發(fā)過程中,一般為了調(diào)試一個(gè)接口,可能需要發(fā)起多個(gè)url請求,比如一個(gè)查看商品的流程:
          1. 首先需要打開電商網(wǎng)站的首頁
          2. 查看商品

          這里涉及到至少兩個(gè)個(gè)url的請求(首頁,商品)。而且這兩個(gè)請求在smartpost里面可以組合成一個(gè)場景,可以叫做【查看商品】。你可以執(zhí)行該場景,那么將會(huì)依照設(shè)定的URL請求循序來執(zhí)行請求,并返回執(zhí)行結(jié)果。

          smartpost在這里所做的只是一個(gè)請求的組合。但是這樣還不夠,可以看到上面上個(gè)請求存在一定的關(guān)系。我這里先假設(shè)這個(gè)電商網(wǎng)站的地址是(假設(shè)這個(gè)請求叫做request_index)

          http://www.smpmall.com

          上面是個(gè)首頁的地址,打開首頁將會(huì)看到很多的商品。我們一般會(huì)選擇一個(gè)商品,我不如再假設(shè)該電商網(wǎng)站首頁布局是這樣的:

          <!-- lang: html -->
           <html>
           <head>
           <title>首頁</title>
           </head> 
           <body>
                  <div id="items">
                      <div class="item">
                              <img src="xxxx.jpg">
                              <a href="item-1222.html"></a>
                      </div>
                      <div class="item">
                              <img src="xxxx.jpg">
                              <a href="item-1223.html"></a>
                      </div>
                  </div>
           </body>
           </html>

          那么假設(shè)我選擇上面item-1222.html,在smartpost里面怎么做額? 只需要將這個(gè)請求定義為(假設(shè)這個(gè)請求叫做request_item)

          http://www.smpmall.com/#{html:'#items .item a&[attr:href]'[0]}

          當(dāng)這個(gè)請求發(fā)生在request_index之后,那么將會(huì)從request_index請求返回的html里面解析出item-1222.html這個(gè)內(nèi)容替換上面#{html:'#items .item a&[attr:href]'[0]}表達(dá)式。

          這里就是smartpost的存在上下文的場景,這也是smartpost設(shè)定場景的必要性?;谶@個(gè),開發(fā)可以對整個(gè)業(yè)務(wù)流程進(jìn)行測試。下面將對上下文的占位符配置進(jìn)行描述:

          引用占位符配置

          smartpost的占位符配置主要分文幾個(gè)部分

          #{type:'expression'[index][default:defaultvalue]}

          其中type可以是:html,json,header,cookie
          expression則是當(dāng)前類型的匹配規(guī)則,比如type為header的時(shí)候,此時(shí)的expression則是header中的key值
          [index]是可選配置,表示如果通過expression匹配了多個(gè),則只取指定的第幾個(gè)
          [defalut:defaultvalue]也是可選配置,表示當(dāng)沒有匹配到制定的expression的值時(shí),默認(rèn)值是多少
          下面主要對各個(gè)類型的expression進(jìn)行描述

          1、type為header時(shí)

          這個(gè)上面已經(jīng)例舉了,當(dāng)type為header的時(shí)候,expression表示是header的key值,將會(huì)將key對應(yīng)的value替換該占位符

          2、type為cookie時(shí)

          和為header類似,只是從返回的cookie里面取值

          3、type為json時(shí)

          此時(shí)expression是一個(gè)JSONPATH表達(dá)式,具體規(guī)則可以到這里看看 https://github.com/jayway/JsonPath

          4、type為html時(shí)

          這里的expression包含兩個(gè)部分前面是一個(gè)css選擇器,用于指定html元素,另一個(gè)是這個(gè)元素的哪個(gè)值。所以是這個(gè)結(jié)構(gòu):cssselector&[text|val|attr:attrName]
          關(guān)于前面的cssselector這里就不說了,應(yīng)該都知道,說一下后面的&[text|val|attr:attrName]
          比如上面的#{html:'#items .item a&[attr:href]'[0]}表示#items .item a CSS選擇器匹配的元素第0個(gè)元素屬性為href的值。只有為attr的時(shí)候需要指定是哪個(gè)屬性的值。

          瀏覽 31
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  做爱视频软件 | 麻豆传媒操逼表情包 | 亚洲成人五区 | 亚洲三级电影在线观看 | 日韩无码成人片 |