目录

  • 接口种类
  • 什么是接口
  • http接口类型
  • 应用实例
  • 发布接口
  • 请求接口
  • 调试接口
  • 常见异常问题解决
    • 413异常
    • 使用HttpClient出现java.io.IOException: Attempted read from closed stream

接口种类

webservice接口、HTTP接口(SSL认证)、RPC接口

什么是接口

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

http接口类型

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

方法 描述
GET 请求指定 页面信息,并返回实体主题
HEAD 向服务器索要与GET请求相一致的响应,只不过响应体不会被返回,这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)
PUT 向指定资源位置上传其最新内容, 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除Request-URI所标识的资源,也就是删除所指定的页面
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 返回服务器针对特定资源所支持的http请求方法,允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断

应用实例

发布接口

SpringBoot发布接口
@PostMapping
客户端只能用 POST方式请求,适用于提交数据。
@GetMapping
客户端只能用 GET 方式请求,适用于查询数据
@DeleteMapping
客户端只能用 DELETE方式请求,使用于删除数据
@PutMapping
客户端只能用 PUT方式请求,使用于修改数据

请求接口

post请求public static boolean doPost(String url, xxxx, xxxxx) throws ClientProtocolException, IOException {LOGGER.info("{}" + url);CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type", "application/json");JSONObject json = new JSONObject();json.put("key1", xxx);json.put("key2", xxx);StringEntity httpEntity = new StringEntity(json.toJSONString(), StandardCharsets.UTF_8);httpPost.setEntity((HttpEntity)httpEntity);CloseableHttpResponse closeableHttpResponse = httpClient.execute((HttpUriRequest)httpPost);int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();if (statusCode != 200) {LOGGER.error("{}" + statusCode);return false;} LOGGER.info(");return true;}get请求public static Boolean doGet(String url, xxxxxxx) throws ClientProtocolException, IOException {LOGGER.info("{}" + url);CloseableHttpClient httpClient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type", "application/json");JSONObject json = new JSONObject();json.put("key1", xxx);json.put("key2", xxx);json.put("key3", xxx);StringEntity httpEntity = new StringEntity(json.toJSONString(), StandardCharsets.UTF_8);httpPost.setEntity((HttpEntity)httpEntity);CloseableHttpResponse closeableHttpResponse = httpClient.execute((HttpUriRequest)httpPost);int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();if (statusCode != 200) {LOGGER.error("{}" + statusCode);return Boolean.valueOf(false);} LOGGER.info("");return Boolean.valueOf(true);}
JS接口请求
$.ajax({url:"http://www.microsoft.com",    //请求的url地址dataType:"json",   //返回格式为jsonasync:true,//请求是否异步,默认为异步,这也是ajax重要特性data:{"id":"value"},    //参数值type:"POST",   //请求方式 get、postbeforeSend:function(){//请求前的处理},success:function(req){//请求成功时处理},complete:function(){//请求完成的处理},error:function(){//请求出错处理}
});

调试接口

可以用过工具postMan、页面请求

常见异常问题解决

413异常

客户端请求体过大,造成请求容量异常
1、需要设置nginx中的客户端属性大小:【client_max_body_size 10m】
2、F5转发就需要设置
3、可以后台分流发送数据

使用HttpClient出现java.io.IOException: Attempted read from closed stream

1、流数据只能使用一次,多次验证可以使用变量接受。

Http接口开发以及异常调试相关推荐

  1. java接口开发 全局异常,全局异常处理

    习惯在controller中进行try catch 异常处理了,但其实如果不做异常处理的话,也可以采取全局异常处理的方式进行解决,同样方便统一使用.维护,具体实现如下: import javax.se ...

  2. TP5_接口开发之全局异常控制

    前言: 说到异常控制,也许很多会比较陌生,我身边很少人会去写抛异常的代码.但是异常用好了是非常的方便大家开发.首先我们来回顾下哪里可以看到异常,首先我们用框架开发的时候,我们的代码出错或者别的东西.如 ...

  3. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》

    关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...

  4. [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

    [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回 1.经验1 直接建立一个支付页面 /** * ecshop 支付接口开发 测试 * ======= ...

  5. 微信公众平台卡券API接口开发指南

    文章目录 说明 卡券术语介绍 卡券生命周期流程图 准备 申请开发账号 公众平台开发配置 公众号开发信息配置 填写服务器配置并验证有效性 申请微信认证及开通微信卡券功能 卡券分类 普通卡券 会员卡券 朋 ...

  6. Django rest_framework 后端接口开发 开发与用户相关的一组接口 登录注册与用户信息查询修改

    Django rest_framework 后端接口开发 开发与用户相关的一组接口 Django DRF框架用起来还是有一些难度的,需要做的配置,需要导的包很多,所以需要多多练习才能掌握它的使用.此文 ...

  7. 接口快速复制到 Postman 接口快速修改参数调试

    文章目录 接口快速复制到 Postman && 接口快速修改参数调试 前言 背景 此文章可以解决什么问题 如何使用 接口快速复制到 Postman 采用 Console 快速调试 使用 ...

  8. 公众号php支付接口开发,公众号支付接口的开发

    这次给大家带来公众号支付接口的开发,公众号支付接口开发的注意事项有哪些,下面就是实战案例,一起来看一下. 公众号支付就是在微信里面的H5页面唤起微信支付,不用扫码即可付款的功能.做这个功能首先要明确的 ...

  9. 第四百零三节,python网站在线支付,支付宝接口集成与远程调试,

    第四百零三节,python网站在线支付,支付宝接口集成与远程调试, windows系统安装Python虚拟环境 首先保证你的系统已经安装好了Python 安装virtualenv C:\WINDOWS ...

  10. PHP 接口开发注意事项

    PHP 接口开发注意事项 PHP 接口开发注意事项 预先定义接口流程和逻辑,确认需求 在开发前首先确定流程,复杂的接口可以绘制流程图,并确保流程与需求一致: 使用统一的变量定义 无论是SDK还是Ser ...

最新文章

  1. C++中#include的工作原理
  2. ExtJS4 API文档阅读(四)——Data
  3. PC端设置每行固定三个元素多余换行
  4. 一文读懂RPA与BPM的区别和联系
  5. 关于openstack 专业博主地址.后续更新
  6. 使用SharedPreferences存储和读取数据
  7. maven spring hibernate shiro
  8. java版b2b2c社交电商spring cloud分布式微服务-服务提供与调用
  9. Python日志保存 -- print内容输出到txt文件、nohup时的输出保存
  10. linux安装数据库yum,linux 安装mysql数据库——yum安装法
  11. 【元胞自动机】基于matlab元胞自动机城市规划【含Matlab源码 125期】
  12. 期末前端web大作业——基于HTML当当图书网项目的设计与实现 网上书城 网上书店 在线书店网页
  13. 618网购盛宴即将开启,云联络中心+AI成为电商的“新基建”
  14. Python+matplotlib绘制地图
  15. Linux中jsoncpp的编译使用
  16. M1芯片处理器mac能用的AI(llustrator CC 2021 直装版M1优化版)解决M1版MAC安装AI闪退问题 完美支持M1芯片处理器
  17. 数千亿“颜值经济”蓝海里,买单的究竟是哪些人?
  18. 4. “强人”的“皮球”生涯
  19. iPhone 将被迫换成 USB-C 接口?苹果,你可怎么办啊......
  20. shell 字符串比较

热门文章

  1. Python批量压缩图片(TinyPNG)
  2. wireshark 安装失败报错,缺少kb2999226补丁的解决方案
  3. 用python算股票月涨幅_「」股票产品 python-如何选取过去每个月股票的市值 python-TOP金融网...
  4. freebsd协议栈学习
  5. Html制作简单而漂亮的登录页面-web前端教程
  6. javascript前端导出Excel简单写法
  7. 银行对公账户编码规则
  8. 使用JMeter测试post请求
  9. l440加装固态硬盘ngff_[转载]Thinkpad E431装NGFF固态硬盘图文详解
  10. Samsung NVM Express Driver(三星nvme固态驱动)v3.1官方版