Server returned HTTP response code: 400 for URL/PARAM
当前url请求无效 这几个错误情景比较多 楼主将出现多的解决方式发送出来供大家参考
- 情景一 Server returned HTTP response code: 400 for URL
当前域名发送时解析不了 楼主总结出现这个错误会有3种场景
1. 非法域名 比如 “qee@qwe!”,“qe2&e q@2” 或者就是加入了空格
2. 未加前缀http:// https://
或者前缀错误 少了s或者没有加s
3. 路径中有中文字符解析不了
问题三的解决方案与代码
import java.net.URLConnection;
import java.net.URLEncoder;
/**
- 因楼主碰到的路径有固定格式之后最后一个 / 格内会有中文字符固可这样解决
- 若遇到不规范的域名格式请求有中文简易使用httpclient工具类请求
- 使用需注意事项
- 若不符合你的场景修改代码前千万记得
- URLEncoder.encode(fileUrl, "UTF-8");
- 也会把\编译返回成中文的格式也会导致 ***无法请求****
*/
public static String getChineseUrl(String fileUrl){
String dowloadUrl = fileUrl;
int indexOf = fileUrl.lastIndexOf("/")+1;
fileUrl = fileUrl.substring(indexOf);
try {
fileUrl = URLEncoder.encode(fileUrl, "UTF-8");
} catch (UnsupportedEncodingException e) {
return fileUrl;
}
dowloadUrl = dowloadUrl.substring(0,indexOf) + fileUrl;
return dowloadUrl;
}
- 情景二 Server returned HTTP response code: 400 for PARAM
较多错误:发送请求中文,或者带有关键词无法解析
可以尝试加入下方代码,另参数比较复杂的话还是建议使用httpclient请求工具类
conn.setRequestProperty("Content-Type", "utf-8");
感谢
https://blog.csdn.net/DwZ735660836/article/details/81354297
https://blog.csdn.net/houjx3/article/details/84064985