当前位置: 首页 > news >正文

莱芜有需要制作网站的公司吗wordpress修改主题

莱芜有需要制作网站的公司吗,wordpress修改主题,一站式进货平台网站建设,女教师遭网课入侵直播录屏曝光se目录 使用GET方法,访问GET接口,服务端返回405使用GET方法,访问POST接口,服务端返回405使用POST方法,访问GET接口,服务端返回405 使用GET方法,访问GET接口,服务端返回405 发生场景&a…

目录

  • 使用GET方法,访问GET接口,服务端返回405
  • 使用GET方法,访问POST接口,服务端返回405
  • 使用POST方法,访问GET接口,服务端返回405

使用GET方法,访问GET接口,服务端返回405

发生场景:
复制的POST请求代码,手动修改为GET,没有修改彻底,导致错误。

错误代码:

public class GET405 {public static void main(String[] args) {try {String defURL = "https://httpbin.org/get";URL url = new URL(defURL);// 打开和URL之间的连接HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod("GET");//请求get方式con.setDoInput(true);// 默认值为 truecon.setDoOutput(true);//默认值为 false,传body参数必须写// 得到请求的输出流对象OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream(), "UTF-8");String body = "username=xiaohu&password=123456";writer.write(body);writer.flush();//            System.out.println("http请求方法:"+con.getRequestMethod());System.out.println("http状态码:" + con.getResponseCode());// 获取服务端响应,通过输入流来读取URL的响应InputStream is = con.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();// 关闭连接con.disconnect();// 打印读到的响应结果System.out.println("运行结束:" + sbf.toString());} catch (Exception e) {e.printStackTrace();}}
}

报错log:

405原因:
con.getOutputStream() 会把原有的GET方法改为POST方法,用POST方法访问GET接口,就报错405。看jdk1.8中HttpURLConnection的getOutpuStream()方法的源码:

解决办法:删掉getOutputStream(),用url传参。

正确代码:

public class GET200 {public static void main(String[] args) {try {String defURL = "https://httpbin.org/get";String body = "username=xiaohu&password=123456";URL url = new URL(defURL+"?"+body);// 打开和URL之间的连接HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod("GET");//请求get方式//          System.out.println("http请求方法:"+con.getRequestMethod());System.out.println("http状态码:" + con.getResponseCode());// 获取服务端响应,通过输入流来读取URL的响应InputStream is = con.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();// 关闭连接con.disconnect();// 打印读到的响应结果System.out.println("运行结束:" + sbf.toString());} catch (Exception e) {e.printStackTrace();}}
}

运行结果:

http状态码:200
运行结束:{"args": {"password": "123456", "username": "xiaohu"}, "headers": {"Accept": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2", "Host": "httpbin.org", "User-Agent": "Java/1.8.0_221", "X-Amzn-Trace-Id": "Root=1-668a1ba0-278338c97b93d6ca4276c0b0"}, "origin": "113.57.25.151", "url": "https://httpbin.org/get?username=xiaohu&password=123456"
}

使用GET方法,访问POST接口,服务端返回405

发生场景:接口文档显示接口为GET接口,实际上后端人员写的是POST接口,文档没同步。

错误代码:

public class GETtoPOST405 {public static void main(String[] args) {try {String defURL = "https://httpbin.org/post";String body="username=xiaohu&password=123456";URL url = new URL(defURL + "?" + body);HttpURLConnection con = (HttpURLConnection) url.openConnection();
//          con.setUseCaches(false); // Post请求不能使用缓存con.setRequestMethod("GET");//请求get方式con.setDoInput(true);// 设置是否从HttpURLConnection输入,默认值为 truecon.setDoOutput(false);// 设置是否使用HttpURLConnection进行输出,默认值为 falseint code = con.getResponseCode();System.out.println("http状态码:" + code);if (code == HttpURLConnection.HTTP_OK) {System.out.println("测试成功");} else {System.out.println("测试失败:" + code);}// 获取服务端响应,通过输入流来读取URL的响应InputStream is = con.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();// 关闭连接con.disconnect();// 打印读到的响应结果System.out.println("运行结束:" + sbf.toString());} catch (Exception e) {e.printStackTrace();}}
}

报错log:

http状态码:405
测试失败:405Caused by: java.io.IOException: Server returned HTTP response code: 405 for URL: https://httpbin.org/post?username=xiaohu&password=123456

405原因:不知道后端接口的定义,或者没有沟通彻底,或者后端开发人员失误,本应该是GET定义成了POST。应该使用POST方法。

解决方法:使用POST请求。

正确代码:

public class POSTtoPOST200 {public static void main(String[] args) {try {String defURL = "https://httpbin.org/post";URL url = new URL(defURL);HttpURLConnection con = (HttpURLConnection) url.openConnection();
//          con.setUseCaches(false); // Post请求不能使用缓存con.setRequestMethod("POST");//请求POST方式con.setDoOutput(true);// 设置是否使用HttpURLConnection进行输出,默认值为 falseOutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream(), "UTF-8");String body = "username=xiaohu&password=123456";writer.write(body);writer.flush();int code = con.getResponseCode();System.out.println("http状态码:" + code);if (code == HttpURLConnection.HTTP_OK) {System.out.println("测试成功");} else {System.out.println("测试失败:" + code);}// 获取服务端响应,通过输入流来读取URL的响应InputStream is = con.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();// 关闭连接con.disconnect();// 打印读到的响应结果System.out.println("运行结束:" + sbf.toString());} catch (Exception e) {e.printStackTrace();}}
}

运行结果:

http状态码:200
测试成功
运行结束:{"args": {}, "data": "", "files": {}, "form": {"password": "123456", "username": "xiaohu"}, "headers": {"Accept": "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2", "Content-Length": "31", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "Java/1.8.0_221", "X-Amzn-Trace-Id": "Root=1-668a2091-2a64856935929fab74082ce4"}, "json": null, "origin": "113.57.25.151", "url": "https://httpbin.org/post"
}

使用POST方法,访问GET接口,服务端返回405

发生场景:代码失误,本该写GET,写成了POST。

错误代码:

public class POSTtoGET405 {public static void main(String[] args) {try {String defURL = "https://httpbin.org/get";URL url = new URL(defURL);// 打开和URL之间的连接HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod("POST");//请求post方式
//            con.setUseCaches(false); // Post请求不能使用缓存con.setDoInput(true);// 设置是否从HttpURLConnection输入,默认值为 truecon.setDoOutput(true);// 设置是否使用HttpURLConnection进行输出,默认值为 falseOutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream(), "UTF-8");String body = "username=xiaohu&password=123456";writer.write(body);writer.flush();writer.close();int code = con.getResponseCode();System.out.println("http状态码:" + code);if (code == HttpURLConnection.HTTP_OK) {System.out.println("测试成功");} else {System.out.println("测试失败:" + code);}// 获取服务端响应,通过输入流来读取URL的响应InputStream is = con.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));StringBuffer sbf = new StringBuffer();String strRead = null;while ((strRead = reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();// 关闭连接con.disconnect();// 打印读到的响应结果System.out.println("运行结束:" + sbf.toString());} catch (Exception e) {e.printStackTrace();}}
}

405原因: 接口只接受GET方法,请求是POST方法。

错误场景:后端开发定义失误,本该是POST接口,写成了GET。接口没有测试。

解决办法:用GET访问。正确代码和GET访问GET一样。

http://www.yayakq.cn/news/520134/

相关文章:

  • 网销网站建设流程wordpress功能最全的免费主题
  • 洛阳工程建设信息网站关于网站建设的网站有哪些
  • 软件工程师证书有哪些网站关键词优化排名推荐
  • 国外常用的网站开发系统一个新手如何推销产品
  • 网站前端 设计政务服务中心网站建设实施方案
  • 江西 网站 建设 开发网站站内优化
  • 贵阳网站建设公司招聘微信里的小程序怎么制作方法
  • 长沙门户网站有哪些传奇网页游戏开服
  • 红酒营销 网站建设网站如何设置二级域名
  • 网站首页网址应该有对应的域名石家庄个人建网站
  • 无代码建站海外短视频服务器
  • 网站建设入什么费用江苏省建设档案网站
  • 黑wordpress网站做网站如何快速推广一款产品
  • 网站建设面试题导购分享网站模板
  • 建个网站做网络推广要花多少钱网站建设栏目怎么介绍
  • cms建设网站杭州营销型网站建设
  • 企业网站html源代码建设网站怎么建设分类
  • 网站运营需要 做哪些工作网站建设需要多少钱小江网页设计
  • 什么物流公司网站建设wordpress如何在数据库中修改域名
  • e2ee网站开发廊坊建设公司网站
  • 建设部网站最新消息网站建设吗
  • 做网站需要哪种工程师深圳市福田区656号
  • 您的网站未备案 或者原备案号被取消如何给网站续费
  • 重庆建站模板展示ps网页设计作品欣赏
  • 网站建设开源模板南京网站定制开发公司
  • 做图片为主的网站对服务器的要求自己做网站出证书
  • 怎么自己编写网站单机网页小游戏
  • 服务器网站怎么做天元建设集团有限公司济南第六建筑工程分公司
  • 网站推广公司需要多少钱网站进入百度沙盒
  • m 的手机网站怎么做烟台住房和城乡建设厅网站