第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建 URI 時出現(xiàn)非法語法錯誤

創(chuàng)建 URI 時出現(xiàn)非法語法錯誤

MMMHUHU 2023-09-27 16:14:32
我正在嘗試生成一個 URI,用于從 ServiceNow API 獲取增量記錄。在執(zhí)行程序時,我創(chuàng)建一個過濾器并將其與原始 uri 連接起來,并使用 RestAssured 的 get 方法提取結(jié)果。雖然上述步驟適用于完整提取,但不知何故,當(dāng)我嘗試生成帶有過濾條件的 URI 時,我收到非法字符錯誤。我編寫了以下函數(shù),用于從 API 獲取數(shù)據(jù):-public static void getURIIncrementalExtract(String tblName, String params) {        RestAssured.baseURI = null;        String params = ""; //For stackoverflow        String displayValueParam = "sysparm_display_value=true&";        String dateParams = "";        dateParams = "sysparm_query=col_updated_on>=2017-09-30"; //+     fromDate        String uri = "https://[servicenowAPIadd].com/api/now/table/" +     tblName + "?" + displayValueParam + params + dateParams;        System.out.println(uri); //URI generated is working correctly in     postman.        RestAssured.baseURI = uri;    }//上面函數(shù)生成的uri // https://[servicenowAPIadd].com/api/now/table/[DBtablename]?sysparm_display_value=true&sysparm_query=col_updated_on >=2017-09-30public static Response getResponseByPath() {        Response response = null;        try {            response = RestAssured.given()                    .when()                    .auth()                    .basic(username, password)                    .get(RestAssured.baseURI);        } catch (Exception e) {            e.printStackTrace();            log.error("Exception in getResponseByPath:-" + e.toString());        }        return response;    }    在 main 方法中,我調(diào)用 getURIIncrementalExtract,然后調(diào)用 getResponseByPath。每當(dāng)我嘗試添加 sysparm_query 過濾器時,都會收到非法語法異常。如果我刪除過濾器,即“sysparm_query=col_updated_on>=2017-09-30”,它工作正常。我也希望生成并使用 URI 來過濾數(shù)據(jù)。我認(rèn)為我生成 URI 的方式可能是錯誤的。有人可以分享正確的方法嗎?如果需要更多信息,請告訴我。
查看完整描述

1 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗 獲得超8個贊

您需要在 RestAssured 請求中啟用編碼并使用queryParam(String, String)方法傳遞參數(shù):


RestAssured.baseURI = "https://servicenowAPIadd.com";

RestAssured

    .given()

    .urlEncodingEnabled(true)               //Encoding should be enabled by default anyway

    .queryParam("sysparm_display_value", "true")

    .queryParam("sysparm_query", "col_updated_on>=2017-09-30")

    .when()

    .get("/api/now/table/" + tableName);

如果您需要在另一個地方生成整個 url,請嘗試使用URLEncoder(但您還應(yīng)該在 RestAssured 中禁用 URL 編碼以防止雙重編碼):


String dateParams = "sysparm_query=" + URLEncoder.encode("col_updated_on>=2017-09-30", "UTF-8"); //Encode your query params here

String uri = "https://servicenowAPIadd.com/api/now/table?" + dateParams;

RestAssured

    .given()

    .urlEncodingEnabled(false)

    .get(uri);


查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號