博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口测试学习 -01
阅读量:6152 次
发布时间:2019-06-21

本文共 3465 字,大约阅读时间需要 11 分钟。

   java编写向接口POST 一个Jason请求,要求 post的方法要单独封装一个类   (有其他类调用post方法,参数最好是json体和链接地址,需要得出返回结果并打印返回信息和http状态码,只打印返回结果和状态码,其他的不能打印出)

 

import java.io.BufferedReader;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;import java.io.OutputStreamWriter; import java.io.InputStream;import java.io.InputStreamReader;//import java.net.MalformedURLException;import net.sf.json.JSONObject;//import java.io.InputStreamReader;//import java.io.UnsupportedEncodingException;//import java.io.BufferedReader;//import java.io.DataOutputStream;public class confirmSendJson {         /**      * 发送HttpPost请求      *       * @param strURL      *            服务地址      * @param params      *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号
* @return 成功:返回json字符串
*/ final static String addr_url = "http://xxxx.com/v1/api/payRequest"; final static String params ="{\"channelCode\": \"01\"," +"\"platformCode\": \"03\"," +"\"tradeNo\": \"1474878291690\"," +"\"subject\": \"打赏\"," +"\"payAmount\": 1," +"\"notifyUrl\": \"http://xxxx.com/v1/test/notify\"," +"\"returnUrl\": \"http://xxxx.com/v1/test/notify/sync\"," +"\"expire\": 300," +"\"extra\": \"hello world\"," +"\"openId\": \"oSlbct45e-fTbFJOtZvZjV5gNKBE\"," +"\"sign\": \"7BB370F84FD481BC758836BB7919BBEF\"}"; public static String post(String addr_url, String params){ String result=""; BufferedReader in = null; OutputStreamWriter out=null; try { //创建连接 URL url = new URL(addr_url); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod("POST"); connection.setUseCaches(false);//post不能保存缓存 connection.setInstanceFollowRedirects(true); connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式 connection.connect(); //POST请求 out = new OutputStreamWriter( connection.getOutputStream(), "UTF-8"); // utf-8编码 out.append(params); out.flush(); out.close(); Map
> map = connection.getHeaderFields(); for (String key : map.keySet()){ System.out.println(key + "------>" +map.get(key)); } //读取响应 in = new BufferedReader( new InputStreamReader(connection.getInputStream())); 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; } public static void main(String[] args) { String result=null; result= post(addr_url, params); System.out.println(result); } }

 

转载于:https://www.cnblogs.com/echo-test/p/6026856.html

你可能感兴趣的文章
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>
字符串去分割符号
查看>>
WPF中,多key值绑定问题,一个key绑定一个界面上的对象
查看>>
UML类图简明教程
查看>>
java反编译工具(Java Decompiler)
查看>>
Android开发之自定义对话框
查看>>
微信Access Token 缓存方法
查看>>
Eclipsed的SVN插件不能识别之前工作空间的项目
查看>>