httpclient 使用方式介绍

第一: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");
  }

}

  

时间: 2024-10-05 03:30:18

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

Android HttpClient HttpURLConnection相关介绍

Android HttpClient HttpURLConnection相关介绍 遇到一个问题 在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用....百度了一会儿之后 发现一个强大网友已经解决了.相关博客:http://stackoverflow.com/questions/32153318/httpclient-wont-import-in-android-studio 究其原因:在Android 2.3及以上版本,使用的是HttpURLC

IntelliJ IDEA 编译方式介绍

原文:https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/newMaster/make-introduce.md 编译方式介绍 相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了.IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还有就是在容器运行之前配置上一个编译事件,先编译后运行.默认下 In

javascript继承的实现方式介绍

javascript继承的实现方式介绍:作为面向对象的一门语言,继承自然是javascript所比不可少的特性,下面就简单介绍一下javascript实现继承的几种方式,希望能够对需要的朋友带来一定的帮助,下面进入正题.一.对象冒充: function A() { this.name="蚂蚁部落"; this.address="青岛市南区"; } function B() { this.target="提供免费的教程"; this.newA=A;

关于iOS中音视频播放的几种方式介绍

在IOS设计中,音视频的播放通常涉及到大部分设计过程中,因此清晰了解并使用音视频播放结构就很重要了,下面介绍几种常用的音视频的播放方式: (一) 使用系统提供的播放器,用system sound service去播放时长小于30s的音乐,通常是.caf,.aif,.wav格式: 创建一个系统播放对象: AudioServicesCreateSystemSoundID ( CFURLRef inFileURL, SystemSoundID *outSystemSoundID); AudioServ

几种VPN组网方式介绍

几种VPN组网方式介绍 VPN是(Virtual Private Network ,虚拟专用网络)的简称,最初是指通过公用网络(例如Internet)将多个不同地区的局域网,组建成广域网的一项技术.为什么要用VPN组网呢?我们简要介绍一下. 在Internet没有普及的时候,跨地区的单位如果要组建网络(广域网)需要从电信租用点对点或点对多点的"专线",例如某个单位总部在北京,在天津.广州.上海有分公司,如果这4个点要组成一个"大局域网",就需要租用3条专线,分别是从

0527.模态视图的概念以及显示、变换方式介绍

学几个单词 dissolve  [d?'z?lv] vi. 溶解:解散 curl  [k??l]  vi. 卷曲 什么是模态视图? 比如UIAlertView,它就是一个模态视图.对于模态视图和普通视图最主要的区别就是模态视图显示的时候不能对其他视图进行操作.主要用来收集或显示一些信息. 思考:弹出警告框的时候,背景视图变暗不能操作,所以说警告框就是一个模态视图. Presentation Style(显示方式) 对于iPhone来讲Presentation Style始终是UIModalPre

android 定位的几种方式介绍

[地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络中现有对于介绍android定位的几种方式,希望对大家有帮助: android 定位一般有四种方法,这四种方式分别是:GPS定位,WIFI定准,基站定位,AGPS定位, (1) Android GPS:需要GPS硬件支持,直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块(现在大部分的智

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

原文:C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍 在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一印象,我们要规划好这些菜单的内容,布局等信息.根据微信菜单的定义,我们可以看到,一般菜单主要分为两种,一种是普通的Url菜单(类型为View的菜单),一种是事件菜单(类型为Click的菜单),一般情况下,微信的Url菜单,是无法获得用户的任何信息的,但微信用户信息非常重要,因此也提供了另外一种方式(类似重定向的方式)来给我们使用,本篇

Apache HTTP Server 与 Tomcat 的三种连接方式介绍

Apache HTTP Server 与 Tomcat 的三种连接方式介绍 整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能.利用 Web 服务器来做负载均衡以及容错.无缝的升级应用程序.本文介绍了三种整合 Apache 和 Tomcat 的方式. 3 评论: 刘 冬 ([email protected]), 开发工程师, 2007 年 1 月 15 日 内容 首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomca