发送get请求报错, Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in query at index 103
处理url,发送get请求时报错;
解决方法:利用 URLEncoder.encode("参数","UTF-8");方法对参数进行转化
String paramAfter = URLEncoder.encode("参数","UTF-8");
然后再将 paramAfter 拼接到url里面;
url += "&" + key + "=" + paramAfter;
原因:
例子:
public static String doGet(String params, String url) throws UnsupportedEncodingException { String result=""; if(params!=null && params.length()>0){ // 》0说明有参数 Map<String,Object> paramMap= (Map<String, Object>) JSONObject.parse(params); int target = 1; for(String key : paramMap.keySet()){ // 判断是否为第一个参数 if (target == 1) { url += "?" + key + "=" + URLEncoder.encode((paramMap.get(key)).toString(),"UTF-8"); } else { url += "&" + key + "=" + URLEncoder.encode((paramMap.get(key)).toString(),"UTF-8"); } target++; } } try{ HttpGet get = new HttpGet(url); // 设置请求超时时间 RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(3000) .setConnectionRequestTimeout(3000) .setSocketTimeout(3000) .build(); get.setConfig(requestConfig); // 添加token addTokenInRequest(get); CloseableHttpResponse httpResponse = trustAll().execute(get); //返回结果 int statusCode = httpResponse.getStatusLine().getStatusCode(); String postReturn = EntityUtils.toString(httpResponse.getEntity()); result = "code=" + statusCode + ",result = " + postReturn; }catch (IOException e){ e.printStackTrace(); } return result; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2022-08-06 获取某个进程占用CPU比例,并将执行结果存到文件中
2022-08-06 获取某个进程占用内存比例