2017-04-13 60 views
2

我正在做一個GET請求,類似於下面的內容: https://endpoint.com/path/to/what//want?param=value如何防止雙重正斜槓被編碼?

我故意失蹤之間的值「什麼」和「希望」測試,它給出了一個404錯誤。 的問題是,由於某種原因,它得到手之前編碼的,什麼是正通過發送是: https://endpoint.com/path/to/what%2f%2fwant?param=value

導致400要返回,因爲這只是一個錯誤的請求。

我知道我可以關閉編碼,但有時param/value組合需要編碼,所以我想避免這樣做。

我試過使用純連接和StringBuilder形成連接字符串,但沒有區別。

任何提示或其他事情試圖嘗試將不勝感激。

回答

1

你唯一的選擇是使用禁用URL編碼:

given().urlEncoding(false). .. 

然後URL編碼,你想手動URL編碼的部分。 REST保證不能總是正確猜測,這是如此。

+0

是的,我想,這就是我現在正在做的。 我只是不明白爲什麼它認爲雙斜線需要編碼。我想我可以在兩者之間增加一個空格來防止它。 – canpan14

+0

這是一個很好的問題,我不能給你一個很好的答案。在我看來,它可能是一個錯誤(所以請隨意貢獻:)) – Johan