java.io.IOException:服务器返回HTTP响应代码:400表示URL

我正在开发一个线程java应用程序,它命中一个url来发送短信
问题是我在NTLM代理服务器后面,我已经搜索了大部分时间并尝试了许多解决方案,但没有成功应用程序给出标题错误,当我试图打印错误响应时,我发现它的错误页面来自代理服务器

这是击球代码

System.setProperty("java.net.useSystemProxies", "true"); System.setProperty("http.proxyHost", AUTH_PROXY"); System.setProperty("http.proxyPort", AUTH_PROXY_PORT); System.setProperty("http.proxyUser", AUTH_USER); System.setProperty("http.proxyPassword", AUTH_PASSWORD); Authenticator.setDefault( new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(AUTH_USER, AUTH_PASSWORD.toCharArray()); } } ); URL url = new URL(urlString); HttpURLConnection httpConn =(HttpURLConnection)url.openConnection(); httpConn.setReadTimeout(10000); String resp = getResponse(httpConn); logger.info("urlString=" + urlString); logger.info("Response=" + resp); 

在这里,我得到了respoonse

 private String getResponse(HttpURLConnection Conn) throws IOException { InputStream is; if (Conn.getResponseCode() >= 400) { is = Conn.getErrorStream(); } else { is = Conn.getInputStream(); } String response = ""; byte buff[] = new byte[512]; int b = 0; while ((b = is.read(buff, 0, buff.length)) != -1) { response += new String(buff, 0, b); } is.close(); return response; } 

任何帮助表示赞赏谢谢

经过多次尝试后,我意识到上面的代码很好,我得到的400错误来自于不编码可能有空格的URL参数

刚用过

 URLEncoder.encode(urlParameter,"UTF-8"); 

对于代码有空格的参数解决了问题