热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

httpclient使用方式介绍

第一:Get方式请求packagecom.hct;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.In

第一: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 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 map = new HashMap();
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");
}

}

  

 


推荐阅读
  • 本文提供了一个Android应用中用于抓取网页信息并下载图片的示例代码。通过该代码,开发者可以轻松实现从指定URL获取网页内容及其中的图片资源。 ... [详细]
  • Java 中静态和非静态嵌套类的区别 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
  • 将数组的所有元素递增 1 的 Java 程序 ... [详细]
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • Struts2框架构建指南
    本文详细介绍了如何使用Struts2(版本2.3.16.3)构建Web应用,包括必要的依赖库添加、配置文件设置以及简单的示例代码。Struts2是Apache软件基金会下的一个开源框架,用于简化Java Web应用程序的开发。 ... [详细]
  • 本文详细介绍了 Go 语言的关键特性和编程理念,包括其强大的并发处理能力、简洁的语法设计以及高效的开发效率。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • 本文详细介绍了Java中的代理模式,包括静态代理、JDK动态代理和Cglib动态代理的实现方式。通过一个火车票销售系统的实例,对比分析了三种代理模式的特点及其应用场景。 ... [详细]
  • 【Java数据结构和算法】008栈
    目录0、警醒自己一、栈的应用场景和介绍1、栈的应用场景一个实际的场景:我的思考:2、栈的介绍入栈演示图:出栈演示图 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
author-avatar
飘飘秀秀真人_562
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有