成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

解決moco框架API在post請(qǐng)求json參數(shù)情況下query失效的問題

Jokcy / 3431人閱讀

摘要:在使用做接口虛擬化的過程中遇到一個(gè)比較棘手的問題,就是根據(jù)官方文檔提供的案例,并不能跑通請(qǐng)求在處理傳參格式的虛擬化。的絕大部分庫(kù),都是可以直接拿來就用的。此段文字為了撐字?jǐn)?shù)強(qiáng)加的,與內(nèi)容無關(guān)。歡迎有興趣的童鞋一起交流

在使用moco API做接口虛擬化的過程中遇到一個(gè)比較棘手的問題,就是根據(jù)官方文檔提供的案例,并不能跑通post請(qǐng)求在處理json傳參格式的虛擬化。經(jīng)過查詢?cè)创a,發(fā)現(xiàn)了一個(gè)問題:
源碼:

public class ParamRequestExtractor extends HttpRequestExtractor {
    private final String param;

    public ParamRequestExtractor(final String param) {
        this.param = param;
    }

    @Override
    protected Optional doExtract(final HttpRequest request) {
        String[] reference = request.getQueries().get(this.param);
        return fromNullable(reference);
    }
}

在獲取請(qǐng)求的內(nèi)容時(shí),發(fā)現(xiàn)該方法不能獲取到正確的請(qǐng)求參數(shù),后來索性自己重寫了一個(gè)Extractor類,內(nèi)容如下:

package com.fun.moco.support;

import com.github.dreamhead.moco.HttpRequest;
import com.github.dreamhead.moco.HttpRequestExtractor;
import com.github.dreamhead.moco.RequestExtractor;
import com.google.common.base.Optional;
import net.sf.json.JSONObject;

import static com.github.dreamhead.moco.util.Preconditions.checkNotNullOrEmpty;
import static com.google.common.base.Optional.fromNullable;

/**
 * json數(shù)據(jù)格式參數(shù)值的獲取
 */
@SuppressWarnings("all")
public class JsonExtractor extends HttpRequestExtractor {

    private final String param;

    public JsonExtractor(final String param) {
        this.param = param;
    }

    @Override
    protected Optional doExtract(HttpRequest request) {
        try {
            String s = request.getContent().toString();
            String value = JSONObject.fromObject(s).getString(param);
            return fromNullable(new String[]{value});
        } catch (Exception e) {
            return fromNullable(new String[]{""});
        }
    }

    /**
     * 獲取參數(shù)的value
     *
     * @param param
     * @return
     */
    public static RequestExtractor queryJson(final String param) {
        return new JsonExtractor(checkNotNullOrEmpty(param, "參數(shù)不能為空!"));
    }
}

groovy使用方法如下:

/**
 * get請(qǐng)求參數(shù)是否相等
 * @param key
 * @param value
 * @return
 */
    static RequestMatcher eqArgs(String key, String value) {
        eq query(key), value
    }

/**
 * post請(qǐng)求json數(shù)據(jù)參數(shù)是否相等
 * @param key
 * @param value
 * @return
 */
    static RequestMatcher eqParams(String key, String value) {
        eq queryJson(key), value
    }
groovy是一種基于JVM的動(dòng)態(tài)語言,我覺得最大的優(yōu)勢(shì)有兩點(diǎn),第一:于java兼容性非常好,大部分時(shí)候吧groovy的文件后綴改成java直接可以用,反之亦然。java的絕大部分庫(kù),groovy都是可以直接拿來就用的。這還帶來了另外一個(gè)有點(diǎn),學(xué)習(xí)成本低,非常低,直接上手沒問題,可以慢慢學(xué)習(xí)groovy不同于Java的語法;第二:編譯器支持變得更好,現(xiàn)在用的intellij的ide,總體來說已經(jīng)比較好的支持groovy語言了,寫起代碼來也是比較順滑了,各種基于groovy的框架工具也比較溜,特別是Gradle構(gòu)建工具,比Maven爽很多。----此段文字為了撐字?jǐn)?shù)強(qiáng)加的,與內(nèi)容無關(guān)。

歡迎有興趣的童鞋一起交流

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75407.html

相關(guān)文章

  • 前后端分離mock server方案(1) -- Moco

    摘要:雖然前后端分離已經(jīng)流行很多年了,仍有很多團(tuán)隊(duì)不能夠充分的利用前后端分離的優(yōu)勢(shì)。主要體現(xiàn)在前端過分依賴服務(wù)環(huán)境將高效的約定分工合作模式理解很淺。在這里推薦一種的解決方案。不支持簡(jiǎn)潔的文件格式不符合的標(biāo)準(zhǔn)。所以使用集成,參考前后端分離方案整合 雖然前后端分離已經(jīng)流行很多年了,仍有很多團(tuán)隊(duì)不能夠充分的利用前后端分離的優(yōu)勢(shì)。主要體現(xiàn)在前端過分依賴服務(wù)環(huán)境, 將高效的約定分工合作模式理解很淺。 ...

    TZLLOG 評(píng)論0 收藏0
  • 前后端分離mock server方案(1) -- Moco

    摘要:雖然前后端分離已經(jīng)流行很多年了,仍有很多團(tuán)隊(duì)不能夠充分的利用前后端分離的優(yōu)勢(shì)。主要體現(xiàn)在前端過分依賴服務(wù)環(huán)境將高效的約定分工合作模式理解很淺。在這里推薦一種的解決方案。不支持簡(jiǎn)潔的文件格式不符合的標(biāo)準(zhǔn)。所以使用集成,參考前后端分離方案整合 雖然前后端分離已經(jīng)流行很多年了,仍有很多團(tuán)隊(duì)不能夠充分的利用前后端分離的優(yōu)勢(shì)。主要體現(xiàn)在前端過分依賴服務(wù)環(huán)境, 將高效的約定分工合作模式理解很淺。 ...

    Pocher 評(píng)論0 收藏0
  • 解決moco框架APIcycle方法缺失問題

    摘要:我在使用框架過程中,遇到一個(gè)問題,在官方文檔中給出了的方法,表示循環(huán)返回一個(gè)數(shù)組里面的,但是在查看的時(shí)候并沒有發(fā)現(xiàn)這個(gè)方法,所以覺得自己寫了一個(gè),并且重寫了方法。方法主要用在請(qǐng)求次數(shù)相關(guān)的內(nèi)容,比如訂單提交資源刪除等場(chǎng)景。 我在使用moco框架過程中,遇到一個(gè)問題,在官方文檔中給出了cycle的方法,表示循環(huán)返回一個(gè)數(shù)組里面的response,但是在查看API的時(shí)候并沒有發(fā)現(xiàn)這個(gè)cyc...

    stefanieliang 評(píng)論0 收藏0
  • 用python抓一點(diǎn)數(shù)據(jù)回來

    摘要:背景分析至此,下一步要解決的問題就是完成一次獨(dú)立的請(qǐng)求,并解析得到目標(biāo)數(shù)據(jù)。上方地址欄的網(wǎng)址是請(qǐng)求的入口,中間圓角方框中的格式天津則是請(qǐng)求參數(shù)。當(dāng)我看到中的天津時(shí),非常開心,因?yàn)槲艺业搅苏?qǐng)求的入口。 概要 背景描述 網(wǎng)站和http請(qǐng)求分析 IP受限的問題 1. 背景描述 大為軟件公司于2001年9月在保定國(guó)家高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)注冊(cè),公司致力于中國(guó)、日本知識(shí)產(chǎn)權(quán)軟件的研究開發(fā),立志成...

    snifes 評(píng)論0 收藏0
  • 【轉(zhuǎn)載】json web token使用

    摘要:當(dāng)使用一個(gè)時(shí),其中一個(gè)挑戰(zhàn)就是認(rèn)證。在傳統(tǒng)的應(yīng)用中,服務(wù)端成功的返回一個(gè)響應(yīng)依賴于兩件事。通常包括將發(fā)送的憑證與存儲(chǔ)的憑證進(jìn)行檢查。第一種是使用請(qǐng)求來通過驗(yàn)證,使服務(wù)端發(fā)送帶有的響應(yīng)。 做了這么長(zhǎng)時(shí)間的web開發(fā),從JAVA EE中的jsf,spring,hibernate框架,到spring web MVC,到用php框架thinkPHP,到現(xiàn)在的nodejs,我自己的看法是越來越喜...

    UsherChen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<