接口测试-自动化-Java实现-HttpUtil
2015-06-16 16:08
363 查看
HttpUtil负责提供Http的Post方法,其核心的方法如下:
其实这也不是我自己写的代码,所以并么有什么特别好说的。我只知道,传递了URL 和 接口参数,使用Post方法获得服务器的结果。
/** * Do POST request * @param url * @param parameterMap * @return * @throws Exception */ public String doPost(String url, Map<?, ?> parameterMap) throws Exception { /* Translate parameter map to parameter date string */ StringBuffer parameterBuffer = new StringBuffer(); if (parameterMap != null) { Iterator<?> iterator = parameterMap.keySet().iterator(); String key = null; String value = null; while (iterator.hasNext()) { key = (String)iterator.next(); if (parameterMap.get(key) != null) { value = (String)parameterMap.get(key); } else { value = ""; } parameterBuffer.append(key).append("=").append(value); if (iterator.hasNext()) { parameterBuffer.append("&"); } } } // System.out.println("POST parameter : " + parameterBuffer.toString()); URL localURL = new URL(url); URLConnection connection = openConnection(localURL); HttpURLConnection httpURLConnection = (HttpURLConnection)connection; httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Accept-Charset", charset); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length())); OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader reader = null; StringBuffer resultBuffer = new StringBuffer(); String tempLine = null; try { outputStream = httpURLConnection.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(parameterBuffer.toString()); outputStreamWriter.flush(); if (httpURLConnection.getResponseCode() >= 300) { resultBuffer.append(httpURLConnection.getResponseCode()); throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); while ((tempLine = reader.readLine()) != null) { resultBuffer.append(tempLine); } } finally { if (outputStreamWriter != null) { outputStreamWriter.close(); } if (outputStream != null) { outputStream.close(); } if (reader != null) { reader.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (inputStream != null) { inputStream.close(); } } return resultBuffer.toString(); }
其实这也不是我自己写的代码,所以并么有什么特别好说的。我只知道,传递了URL 和 接口参数,使用Post方法获得服务器的结果。
相关文章推荐
- 【HTTP】HTTP状态码
- window.onload,&lt;body onload=&quot;function()&quot;&gt;, document.onreadystatechange, httpRequest.onreadystatechang
- Java实验报告五:Java网络编程及安全
- Android Volley完全解析(二),使用Volley加载网络图片
- Ubuntu系统如何安装双网卡及更改网卡名称(eth0改为eth1)
- 一种无线网络连接不上的解决办法
- HTTP ERROR
- HLS (HTTP Live Streaming)
- ASIHTTPRequest缓存策略download cache
- Delphi-网络编程-UDP聊天程序(转)
- [Erlang]port(gen_tcp)如何并行?
- Http中的Get与Post
- 图解HTTPS协议
- java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClients
- Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传
- HTTP协议详解
- java 网络(socket)
- iOS笔记之网络
- RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)
- VC网络通信API概览