第一:Get方式请求

package com.hct;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject; public class GetPort { public static JSONObject getUrl(String url) throws ClientProtocolException, IOException {
// 创建HttpClient实例
DefaultHttpClient httpclient = new DefaultHttpClient();
JSONObject son = new JSONObject();
// 创建Get方法实例
HttpGet httpgets = new HttpGet(url);
HttpResponse response = httpclient.execute(httpgets);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instreams = entity.getContent();
String str = convertStreamToString(instreams);
son = new JSONObject(str);
System.out.println("以下是响应结果:");
System.out.println(str);
// Do not need the rest
httpgets.abort();
}
return son;
} public static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder(); String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
} }

第二:post请求方式

package com.hct;

import java.io.IOException;
import java.util.Map; import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject; public class PostPort { public JSONObject postResponse(String url,String json,Map<String, String> headers) throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
String uri = url;
HttpPost httppost = new HttpPost(uri);
if(!headers.isEmpty()){
for(String key : headers.keySet())
{
// 遍历map对象添加http头信息
httppost.addHeader(key, headers.get(key));
}
}
JSONObject parameters = new JSONObject(json);
//将参数添加进请求url中
httppost.setEntity(new StringEntity(parameters.toString())); HttpResponse response;
//执行请求
response = httpclient.execute(httppost);
//获取状态码
int t = response.getStatusLine().getStatusCode();
if(t==200){
String rev = EntityUtils.toString(response.getEntity());
System.out.println(rev);
parameters =new JSONObject(rev);
/* 测试使用
String orderId = (String) parameters.get("orderId");
System.out.println(orderId);*/ }
return parameters;
} public JSONObject postResponse1(String url,String json) throws ClientProtocolException, IOException{
String uri =url;
String para = json;
JSONObject jso = null;
jso = postResponse(uri, para, null);
return jso; } }

第三:使用testng进行测试

package com.hct118;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map; import org.apache.http.client.ClientProtocolException;
import org.json.JSONObject;
import org.testng.Assert;
import org.testng.annotations.Test; public class TestPortCase {
//核保接口测试
@Test
public void testPost() throws ClientProtocolException, IOException {
String uri = "http://10.253.10.226:8080/invest/mvc/m/clients/underwriter";
Map<String, String> map = new HashMap<String, String>();
map.put("token", "9802525003ff40d1a39863722371f8c1");
map.put("Content-Type", "application/json");
String json = "{\"phoneNo\":18234560012,\r\n" +
"\"tradeAccount\":\"test8887\",\r\n" +
"\"name\":\"谭宝玲\",\r\n" +
"\"certNo\":\"440681198610152044\",\r\n" +
"\"amount\":\"40000.11\",\r\n" +
"\"channelRequestNo\":\"test00044442\",\r\n" +
"\"productOffingCode\":\"101001048364\"\r\n" +
"}";
PostPort pp = new PostPort();
JSONObject jso = pp.postResponse(uri, json, map);
System.out.println(jso.get("channelOrderNo"));
Assert.assertEquals(jso.get("returnMsg"), "成功");
}
@Test
public void testGet() throws ClientProtocolException, IOException
{
String url = "http://10.253.10.226:8080/invest/mvc/commons/sms/otp/new?phoneNo=18234560012&token=9802525003ff40d1a39863722371f8c1";
JSONObject js = GetPort.getUrl(url);
Assert.assertEquals(js.get("status"), "SUCCESS");
} }

  

httpclient 使用方式介绍的更多相关文章

  1. Android HttpClient HttpURLConnection相关介绍

    Android HttpClient HttpURLConnection相关介绍 遇到一个问题 在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用.. ...

  2. C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍

    在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一印象,我们要规划好这些菜单的内容,布局等信息.根据微信菜单的定义,我们可以看到,一般菜单主要分为两种,一 ...

  3. **crontab的使用方式介绍和no crontab for root 提示的处理

    crontab的使用方式介绍   定时任务参数详解如下:  crontab -l     |  crontab -e    www.2cto.com   #*/30 * * * * ntpdate 1 ...

  4. Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式

    参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...

  5. Mysql查看版本号的五种方式介绍

    Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03   一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...

  6. httpclient 认证方式访问http api/resutful api并获取json结果

    最近,因公司线上环境rabbitmq经常发生堆积严重的现象,于是跟运维组讨论,帮助开发个集中监控所有rabbitmq服务器运行情况的应用,需要通过java访问rabbitmq暴露的http api并接 ...

  7. IntelliJ IDEA 编译方式介绍

    编译方式介绍 相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了.Inte ...

  8. 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)

    轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...

  9. Hive四种数据导入方式介绍

    问题导读 1.从本地文件系统中通过什么命令可导入数据到Hive表? 2.什么是动态分区插入? 3.该如何实现动态分区插入? 扩展: 这里可以和Hive中的三种不同的数据导出方式介绍进行对比? Hive ...

随机推荐

  1. vim as python IDE

    参照Martin Brochhaus大神的视频,今天我也尝试了一下配置vim python IDE以后使用过程中只需要https://github.com/wyj1239630590/vim-as-a ...

  2. thinkphp3.2.3中U()方法和redirect()方法区别

    今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在think ...

  3. AutoComplete

    aspx页面 需要引用的文件: <link rel="stylesheet" type="text/css" href="css/jquery. ...

  4. Bubble Cup 8 finals B. Bribes (575B)

    题意: 给定一棵n个点和有向边构成的树,其中一些边是合法边,一些边是非法边, 经过非法边需要1的费用,并且经过之后费用翻倍. 给定一个长为m的序列,问从点1开始按顺序移动到序列中对应点的总费用. 1& ...

  5. MyEclipse安装插件的几种方法

    本文讲解MyEclipse(MyEclipse10)的三种方法,以SVN为例 Eclipse update site URL: http://subclipse.tigris.org/update_1 ...

  6. 我们是怎么管理QQ群的

    文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...

  7. 3.1、Spring和Struts2的结合使用

    一.配置Struts2: 1.新建一个web项目,在src目录下新建com.st.bean/dao/service/action包,并在该包下面添加相应的接口及接口的实现类: a).在bean下新建一 ...

  8. 【学习笔记】Struts2之配置处理结果

        Action只是Struts2控制器的一部分,所以它不能直接生成对浏览者的响应.Action只负责生成响应的视图组件,通常是JSP页面,而Action会为JSP页面提供显示数据.     Ac ...

  9. LPC1768\1769之中断优先级与中断优先级组

    一.背景 USB在持续通信几十万次后,会出现USB IN中断丢失几次的情况,分析是中断优先级不够高,导 致USB中断在排队,然而排队还未完成,又有新的USB中断发生,致使其中断丢失.LPC1769的所 ...

  10. ResultSet can not re-read row data for column 1.

    error:ResultSet can not re-read row data for column 1. 将数据类型改为varchar(max)后,查询数据错误 改正:将jdbc驱动改为jtds驱 ...