您的位置:首页 > 其它

接口测试学习 -01

2016-11-14 19:55 134 查看
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\" }" ;其中属性名必须带双引号<br/>
* @return 成功:返回json字符串<br/>
*/

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<String,List<String>> 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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: