簡體   English   中英

Ruby Rest Client參數數組

[英]Ruby rest client array of params

我正在將我的其余客戶gem從1.8更新到2.0。

在1.8上,它在get請求上以my-url?ids=1,2,3,4發送參數數組。 但在2.0上,它使用重復的鍵,例如my-url?ids=1&ids=2&ids=3 出於超出此問題范圍之外的原因,我們的后端不支持新的多鍵語法(好的,它支持它,但是我們必須進行大量重構)。 因此,我想知道是否有一種方法可以使用2.0客戶端版本,並繼續像以前一樣僅用一個鍵發送並以逗號分隔的get數組請求?

根據rest-client docs https://github.com/rest-client/rest-client#query-parameters看來,您唯一的選擇是自行序列化參數並將其作為查詢字符串添加到URL。

如果您不喜歡這種行為並希望獲得更多控制,只需自行序列化參數(例如,使用URI.encode_www_form),然后將查詢字符串直接添加到URL以獲取GET參數,或者將有效負載作為字符串傳遞給POST請求。

如果您提供一些有關如何使用gem的示例代碼,我們可以通過示例答案更好地幫助您。

是的, Leo Correa是正確的,所以我要做的是替換舊代碼

params = {
    partner_key: @partner,
    resources: ["front_end_config", "gui_settings"]
}
@response = JSON.parse( RestClient.get( "#{api_base_uri}/partner_config.json", params: params.merge({multipart:true}) ) )

有了這個新的,我自己序列化和編碼...

params = {
    partner_key: @partner,
    resources: '["front_end_config", "gui_settings"]'
}
params = URI.encode_www_form(params.merge({multipart:true}))
@response = JSON.parse( RestClient.get( "#{api_base_uri}/partner_config.json?#{params}" ) )

這很丑陋,但是對我有用。 如果還有其他關於如何改善它的想法,我將不勝感激。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM