1. 程式人生 > >Http的Get/Post請求帶有特殊字元,400 Bad Request解決方案

Http的Get/Post請求帶有特殊字元,400 Bad Request解決方案

今天做專案的時候,需要向伺服器介面 傳遞 json引數,使用 apache 的 httpclient,當時沒有對引數做特殊處理直接提交了,結果執行時報錯了,如下:

HTTP 400 Bad Request

後來在網上查資料找到原因了:HttpGet或 HttpPost都不能傳包含 ” 、“{“、”}”這樣的引數,需要對特殊字元進行轉義,把 ” 轉成%22,把 { 轉成%7b,把 } 轉成%7d

   String url = "http://127.0.0.1:9000/signal/Resource?param={\"name\":\"service1\",\"param\":{\"id\":\"1\"}}";
   url = url.replace("\"", "%22").replace("{", "%7b").replace("}", "%7d");       
注意:引數裡面如果有 空格的話,也需要轉義,否則會有問題。