HTTP接口客户端开发
来源:互联网 发布:python入门课程推荐 编辑:程序博客网 时间:2024/05/16 17:54
工作中为第三方厂商提供HTTP接口,第三方传送请求报文给我们,我们自己进行相应的业务处理之后返回给第三方相应报文。
自己编写完服务端之后,还需要写个客户端进行模拟测试,以下用POST方式向HTTP接口发送数据。
编写客户端需要用到以下两个包,专门用于java客户端的开发:
传递相应的参数,通过POST方式调用HTTP接口:
<span style="font-family:Microsoft YaHei;"><span style="white-space:pre"></span><span style="font-size:14px;">public static void main(String[] args) throws Exception {</span></span><pre><span style="font-family:Microsoft YaHei;"><span style="font-size:14px;">TestHttpPost test = new TestHttpPost();</span></span><span style="font-family:Microsoft YaHei;"><span style="font-size:14px;">String xmlFilePath1 = "C:\\Users\\test.xml";</span></span><span style="font-family:Microsoft YaHei;"><span style="font-size:14px;">String url = "http://localhost:8001/servlet";</span></span><span style="font-family:Microsoft YaHei;"><span style="font-size:14px;">test.postHttpRequest(xmlFilePath1,url);</span></span><span style="font-family:Microsoft YaHei;"><span style="font-size:14px;">}</span></span>
<span style="font-family:Microsoft YaHei;">/**<span style="font-size:14px;"> * 发送POST请求 * @param xmlFilePath 请求文件路径 * @param url 接口访问地址 * @throws Exception */public void postHttpRequest(String xmlFilePath,String url) throws Exception{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new FileInputStream(new File(xmlFilePath)));String requestXml = document.asXML(); HttpPost httpPost = null; try { // 定义HttpPost请求 httpPost = new HttpPost(url); // 定义请求实体 HttpEntity requestEntity = new StringEntity(requestXml, "UTF-8"); httpPost.setEntity(requestEntity); // 定义HttpClient HttpClient httpClient = new DefaultHttpClient(); HttpParams httpParams = httpClient.getParams(); // 设置Http协议的版本 httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); // 设置请求连接超时时间 httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000); // 设置请求响应超时时间 httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, 50000); // 以post方式发送Http请求 HttpResponse httpResponse = httpClient.execute(httpPost); // 获取响应实体 HttpEntity responsetEntity = httpResponse.getEntity(); InputStream inputStream = responsetEntity.getContent(); StringBuilder reponseXml = new StringBuilder(); byte[] b = new byte[2048]; int length = 0; while ((length = inputStream.read(b)) != -1) { reponseXml.append(new String(b, 0, length)); } //将返回的报文打印出来 System.out.println(URLDecoder.decode(reponseXml.toString(), "UTF-8") ); } catch (Exception e) { if(SocketTimeoutException.class.isInstance(e)){ throw new RuntimeException("Http请求响应超时",e); } else if(ConnectException.class.isInstance(e)){ throw new RuntimeException("Http请求异常", e); }else{ throw new RuntimeException("其他异常", e); } } finally{ //释放请求的连接 if(httpPost!=null){ httpPost.abort(); } } }</span></span>
0 0
- HTTP接口客户端开发
- Http接口:客户端
- HTTP接口客户端调用程序
- http客户端服务器开发
- PHP开发移动客户端接口---封装接口
- Android的HTTP客户端接口 [整理]
- HTTP/FTP客户端开发库
- HTTP/FTP客户端开发库
- http接口开发及调用
- http接口开发及调用
- php开发http json接口
- python flask http 接口开发
- Android’s HTTP Clients(Android的HTTP客户端接口)
- CXF客户端调用?wsdl webservice接口开发
- 手机客户端接口开发文档模板整理
- 支付宝接口开发:客户端服务器端
- SpringBoot 接口开发(httpclient客户端)
- rtsp rtmp http流媒体客户端开发
- directx 9.0c sdk api介绍
- Intent中的四个重要属性——Action、Data、Category、Extras
- Oracle Analyze 命令 详解
- 24设计模式之:代理模式
- 《Linux》天影linux系列笔记一——linux常用命令详解:cd
- HTTP接口客户端开发
- Android 设计模式之单例模式
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2.5各种内存介绍
- Oracle存储过程的编写经验总结
- ORACLE复杂查询之连接查询
- java向mysql存入xml文件
- win8最好用的浏览器官网免费下载
- Web Components - 面向未来的组件标准
- 很特别的一个动态规划入门教程