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:相关推荐

  1. 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 ...

  2. WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX

    问题描述:在本地测试时,使用个人封装的Webservice代码工具类调用远程接口服务时,一切正常.但是一旦将该代码放到一个已有项目的中使用时,就会出现如下所示的错误提示 java.io.IOExcep ...

  3. java.io.IOException: Server returned HTTP response code: 411 for URL

    今日调用一post方式提交的http接口,此接口在测试环境ip调用时无问题,但在生产环境通过域名调用时一直报如下错误: java.io.IOException: Server returned HTT ...

  4. 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 ...

  5. 解决:无法连接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 ...

  6. java后台调用SOE时,报异常java.io.IOException: Attempted read from closed stream

    java后台调用SOE时,报异常java.io.IOException: Attempted read from closed stream 代码诸如此类 public void test(HttpS ...

  7. 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 ...

  8. linux rm 提示io异常,Hadoop异常 java.io.IOException: Job status not available

    Hadoop集群上跑mapreduce,在job任务执行完成退出时报 java.io.IOException: Job status not available异常.Job client请求job状态 ...

  9. hadoop异常 java.io.IOException: Job status not available

    Hadoop集群上跑mapreduce,在job任务执行完成退出时报 java.io.IOException: Job status not available异常.Job client请求job状态 ...

最新文章

  1. Java:代码验证 StringBuffer 线程安全,StringBuilder 非线程安全
  2. Phoenix Tips (12) 跟踪 Tracing
  3. 【安装MongoDB】CentOS7 下安装NodeJs+Express+MongoDB+Redis
  4. 在解决计算机主机,电脑主机噪音大怎么办 电脑主机噪音大解决方法【图文】...
  5. iOS开发之Objective-C与JavaScript的交互
  6. mask rcnn实例分割_使用Mask-RCNN的实例分割
  7. sql server 2005 数据库状态 变成 可疑的解决方案
  8. mysql savepoint语法_SAVEPOINT语法错误一例
  9. evplayer2可以多设备登录吗_这么多自助设备,你都选对投放位置了吗
  10. 机器学习焦点,范德比尔特(Vanderbilt U)的医疗机器人以及更多开源新闻
  11. CNN 手写数字识别
  12. java es 搜索_使用elasticsearch从多个列表中搜索
  13. Codeforces 1039D You Are Given a Tree (看题解)
  14. emcy协议_商铺三方租赁协议合同范本
  15. git中将多次commit合并为一次commit
  16. Dell笔记本电脑如何升级win10、如何恢复原装win8.1
  17. superview透明问题
  18. FLink学习笔记:12-Flink 的Table API的常用操作
  19. 真正从零开始搭建网站—宝塔面板+wordpress(超详细教程)
  20. 思科认证介绍(各种证书)

热门文章

  1. HTML+CSS基础知识3
  2. 使用栈实现计算器java(括号、加减、乘除)v2.0
  3. 文章分享《Supervised Contrastive Learning》 自监督对比学习和有监督对比学习的区别
  4. uniapp实现订单列表以及scss样式布局
  5. 线性代数(6):线性方程组
  6. CDMA 、CSMA 、CSMA/CD、CSMA/CA傻傻分不清
  7. 人民日报:5G的好戏在后头
  8. CentOS 7安装Cowsay(奶牛有话说)
  9. 对话:人狠话不多 vs 中间件小姐姐
  10. TP、FN、FP、TN、准确率、召回率、F1