package com.bing.util;

import com.bing.constant.ResultModel;
import com.bing.model.Company;
import com.google.common.collect.Lists;
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
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.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils; import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class ss {
public static String sendPost(String url, final Map<String,String> head, final Company paemear) throws Exception{
boolean isSuccess = false;
String str="";
HttpPost post = null;
HttpClient httpClient = new DefaultHttpClient();
// 设置超时时间
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6000);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 6000); post = new HttpPost(url);
// 构造消息头 post.setHeader("Content-type", "application/json; charset=utf-8");
for (Map.Entry<String,String> entry : head.entrySet()) {
post.setHeader(entry.getKey(),entry.getValue());
}
// 构建消息实体
// 发送Json格式的数据请求
System.out.println(System.currentTimeMillis());
HttpResponse response = httpClient.execute(post);
System.out.println(System.currentTimeMillis());
// 检验返回码
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode != HttpStatus.SC_OK){
isSuccess = false;
}else{
int retCode = 0;
/**读取服务器返回过来的json字符串数据**/
str = EntityUtils.toString(response.getEntity());
}
if(post != null){
try {
post.releaseConnection();
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return str;
} /**
* 并发量测试
* @param xian 线程池个数
* @param count 每个线程的调用次数
* @param url 调用的 URL
* @param head 头参数
* @param paemear 传入参数
*/
public static void bing(final int xian,final int count, final String url, final Map<String,String> head, final Company paemear){ for(int i = 1; i<xian; i++){
final int m =i;
Thread t = new Thread(new Runnable(){//线程启动
public void run(){
try {
int j = 0;//成功次数
int k = 0; //失败次数
for (int l=1;l<count;l++){
System.out.println(m +"号线程");
String str = ss.sendPost(url,head,paemear);
System.out.println(str);
JSONObject jsonObject=JSONObject.fromObject(str);
ResultModel resultModel=(ResultModel)JSONObject.toBean(jsonObject, ResultModel.class);
if(resultModel.getError()==200){
j++;
}else{
k++;
}
System.out.println(m+"号线程正在调用:"+l+"次");
}
System.out.println(m+"号线程共调应100次 成功:"+j+"失败:"+k);
}catch (Exception e){
System.out.println(m +"号线程查询出错");
}
}
});
t.start();
}
} public static void main(String[] args){
final Map<String,String> head = new HashMap<>();
head.put("token","e7dd5368743457c51405802283d54057ca95f9c73a19fe54");
head.put("terminalType","Android");
Company paemear = new Company();
bing(2,2,"http://192.168.2.203:8080/HouseLizardCloud/Company/addCompany",head,paemear); }
}

Java跨系统调用接口(POST)的更多相关文章

  1. httpclient,java跨系统调用,第三接口调用实例

    java跨系统调用,第三方接口调用,有三种方式 1:rmi/rpc 传序列化对象 2:webservice 传xml 3:restful 传json 接下来给大家演示怎么用httpclient调用re ...

  2. JNI的替代者—使用JNA访问Java外部功能接口

    摘自:http://www.cnblogs.com/lanxuezaipiao/p/3635556.html JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Ja ...

  3. Java NIO Path接口和Files类配合操作文件

    Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...

  4. 【C/C++开发】【Java开发】JNI的替代者—使用JNA访问Java外部功能接口

    JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言( ...

  5. 【转】java通用URL接口地址调用方式GET和POST方式

    java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...

  6. Java继承和接口

    接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...

  7. java中set接口的用法

    java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...

  8. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  9. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

随机推荐

  1. .Net Mvc框架知识点

    一.实现Controller的依赖注入: 1.自定义继承DefaultControllerFactory 类的控制器工厂类并重写GetControllerInstance方法:(如:InjectCon ...

  2. linux安装git、node、pm2

    一.安装Git 下载:# wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz 解压:# tar -zxvf git-2. ...

  3. svn自动更新网站代码

    运行环境说明:svn的执行目录: /usr/bin/svnsvn版本库目录: /usr/local/nginx/html/svnrepos/coinhello (其中svnrepos是我各个项目版本库 ...

  4. 【代码笔记】XML深入学习:DTD约束与DTD语法(1)

    2015-12-27 文件名    student.xml <?xml version="1.0" encoding="GB2312" standalon ...

  5. Java & COM

  6. .NET开源工作流RoadFlow-表单设计-标签(label)

    LABEL标签即在表单中添加一个文本标签: 字号:标签显示文字的大小. 颜色:标签显示文字的颜色. 样式:以粗体和斜体显示.

  7. selendroid之toast处理

    最近发现原来处理toast的操作失效了.仔细看了下原来的API.决定用switchTo来解决.driver.switchTo().defaultContent().findElement(By.id( ...

  8. 简单记录一下http请求的7个步骤

    1.建立TCP连接 2.客户端发送请求命令 3.客户端发送请求头信息 4.服务端应答请求,返回版本号和状态码 5.服务端应答头信息 6.服务端向客户端发送数据 7.服务器关闭TCP连接(Connect ...

  9. ubuntu安装google test

    google test 简称gtest,是一个C/C++的单元测试框架,它的代码在github仓库,使用起来还是挺方便的. 安装 先确保PC上有安装cmake: sudo cmake --versio ...

  10. 查看oracle固定目录下日志和trace文件大小脚本

    python刚入门,在Oracle官网看到个小脚本,感觉挺有意思,经过测试切实可行. [oracle@ycr python]$ more 5.py import datetimeimport osim ...