发送 POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL:
http发送post请求报400,405,记录下原因:
报错如下:
发送 POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL: http://111.231.133.247:8083/jobScheduler/pendingJobjava.io.IOException: Server returned HTTP response code: 400 for URL: http://111.231.133.247:8083/jobScheduler/pendingJobat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1627)at com.ulearning.ulms.util.HttpClientUtil.sendPost(HttpClientUtil.java:233)at com.ulearning.ulms.homework.action.TutorHomeworkAction.pushMessage(TutorHomeworkAction.java:799)at com.ulearning.ulms.homework.action.TutorHomeworkAction.saveOrUpdateHomework(TutorHomeworkAction.java:742)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)at com.ulearning.ulms.homework.action.TutorHomeworkAction.execute(TutorHomeworkAction.java:142)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1480)at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:524)at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.ulearning.ulms.core.filter.JSPSupportFilter.doFilter(JSPSupportFilter.java:51)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.ulearning.ulms.util.RolePermissionFilter.doFilter(RolePermissionFilter.java:72)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.ulearning.ulms.util.XssFilter.doFilter(XssFilter.java:23)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.ulearning.ulms.util.BehaviorRecordsFilter.doFilter(BehaviorRecordsFilter.java:84)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at com.ulearning.ulms.util.i18n.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:103)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)
解决方法:
400报错,可以确定的是传入参数有问题,所以要从传参这查起,
错误一:
所需要的时间格式是"yyyy-MM-dd HH:mm:ss",由于有两个时间转换的方法,而我转成了"yyyy-MM-dd HH:mm",导致时间格式和接收方不一样,所以报了以下错误,把转换的时间格式改为和需要接受的参数一致即可
com.alibaba.fastjson.JSONObject jsonStr = new com.alibaba.fastjson.JSONObject();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");JSONObject jsonStr = new JSONObject();Date dBefore = new Date();Calendar calendar = Calendar.getInstance(); //得到日历calendar.setTime(ah.getEndTime());//把当前时间赋给日历calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天dBefore = calendar.getTime(); //得到前一天的时间String defaultStartDate = sdf.format(dBefore); //格式化前一天jsonStr.put("pushTime", defaultStartDate );jsonStr.put("content", "你好");try {HttpClientUtil.sendPost(url, jsonStr.toString(), null,HttpClientUtil.CONTENTTYPE);} catch (Exception e) {e.printStackTrace();}
错误二:
中文参数乱码问题,导致400错误
解决方法:
发送post方法:
public static String sendPost(String url, String param, String contentType) {OutputStreamWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setRequestProperty("Content-Type", contentType);// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流// out = new PrintWriter(conn.getOutputStream());out = new OutputStreamWriter(conn.getOutputStream(), "utf-8"); // 8859_1out.write(param); // post的关键所在// 发送请求参数// out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应int code = conn.getResponseCode();if(code == 200) {in = new BufferedReader(new InputStreamReader(conn.getInputStream()));}else{in = new BufferedReader(new InputStreamReader(conn.getErrorStream()));}String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}
问题三:报405的原因:
在post方法中添加:
conn.setRequestProperty("Content-Type", contentType);
发送 POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL:相关推荐
- POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL
http发送post请求报400,405 报错如下: 发送 POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 4 ...
- WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX
问题描述:在本地测试时,使用个人封装的Webservice代码工具类调用远程接口服务时,一切正常.但是一旦将该代码放到一个已有项目的中使用时,就会出现如下所示的错误提示 java.io.IOExcep ...
- java.io.IOException: Server returned HTTP response code: 411 for URL
今日调用一post方式提交的http接口,此接口在测试环境ip调用时无问题,但在生产环境通过域名调用时一直报如下错误: java.io.IOException: Server returned HTT ...
- java报错--java.io.IOException: Server returned HTTP response code: 502
java.io.IOException: Server returned HTTP response code: 502 for URL: http://ip.taobao.com/service/g ...
- 解决:无法连接Java VisualVM 插件中心, 因为Server returned HTTP response code: 503 for URL: http://www.oracle.com/
错误 解决办法 1.打开visualvm官方插件网址:https://visualvm.github.io/pluginscenters.html 2.选择适合你自己安装的jdk版本对应的Java V ...
- java后台调用SOE时,报异常java.io.IOException: Attempted read from closed stream
java后台调用SOE时,报异常java.io.IOException: Attempted read from closed stream 代码诸如此类 public void test(HttpS ...
- java.io.IOException: Server asks us to fall back to SIMPLE auth, but this client is confi的问题
Caused by: java.io.IOException: Server asks us to fall back to SIMPLE auth, but this client is confi ...
- linux rm 提示io异常,Hadoop异常 java.io.IOException: Job status not available
Hadoop集群上跑mapreduce,在job任务执行完成退出时报 java.io.IOException: Job status not available异常.Job client请求job状态 ...
- hadoop异常 java.io.IOException: Job status not available
Hadoop集群上跑mapreduce,在job任务执行完成退出时报 java.io.IOException: Job status not available异常.Job client请求job状态 ...
最新文章
- Java:代码验证 StringBuffer 线程安全,StringBuilder 非线程安全
- Phoenix Tips (12) 跟踪 Tracing
- 【安装MongoDB】CentOS7 下安装NodeJs+Express+MongoDB+Redis
- 在解决计算机主机,电脑主机噪音大怎么办 电脑主机噪音大解决方法【图文】...
- iOS开发之Objective-C与JavaScript的交互
- mask rcnn实例分割_使用Mask-RCNN的实例分割
- sql server 2005 数据库状态 变成 可疑的解决方案
- mysql savepoint语法_SAVEPOINT语法错误一例
- evplayer2可以多设备登录吗_这么多自助设备,你都选对投放位置了吗
- 机器学习焦点,范德比尔特(Vanderbilt U)的医疗机器人以及更多开源新闻
- CNN 手写数字识别
- java es 搜索_使用elasticsearch从多个列表中搜索
- Codeforces 1039D You Are Given a Tree (看题解)
- emcy协议_商铺三方租赁协议合同范本
- git中将多次commit合并为一次commit
- Dell笔记本电脑如何升级win10、如何恢复原装win8.1
- superview透明问题
- FLink学习笔记:12-Flink 的Table API的常用操作
- 真正从零开始搭建网站—宝塔面板+wordpress(超详细教程)
- 思科认证介绍(各种证书)