复代码代码如下:
패키지 org.ssi.util;
import java.io.IOException;
import java.util.ArrayList;
java.util.List 가져오기;
net.sf.json.JSONArray 가져오기;
import org.apache.commons.lang.Exception.ExceptionUtils;
org.apache.commons.logging.Log 가져오기;
org.apache.commons.logging.LogFactory 가져오기;
org.apache.http.HttpResponse 가져오기;
org.apache.http.HttpStatus 가져오기;
org.apache.http.NameValuePair 가져오기;
org.apache.http.client.HttpClient 가져오기;
org.apache.http.client.entity.UrlEncodedFormEntity 가져오기;
org.apache.http.client.methods.HttpPost 가져오기;
org.apache.http.impl.client.DefaultHttpClient 가져오기;
import org.apache.http.message.BasicNameValuePair;
org.apache.http.protocol.HTTP 가져오기;
org.apache.http.util.EntityUtils 가져오기;
공개 클래스 APIHttpClient {
//接口地址
개인 문자열 apiURL = "";
개인 로그 로거 = LogFactory.getLog(this.getClass());
개인 정적 최종 문자열 패턴 = "yyyy-MM-dd HH:mm:ss:SSS";
개인 HttpClient httpClient = null;
개인 HttpPost 메서드 = null;
개인용 긴 startTime = 0L;
프라이빗 롱 endTime = 0L;
개인 int 상태 = 0;
/**
* 接口地址
* @param URL
*/
공개 APIHttpClient(문자열 URL){
if(url != null)
{
this.apiURL = URL;
}
if(apiURL != null)
{
httpClient = 새로운 DefaultHttpClient();
메소드 = new HttpPost(apiURL);
}
}
/**
* 사용 API
* @param 매개변수
* @반품
*/
공개 문자열 포스트(문자열 매개변수)
{
문자열 본문 = null;
logger.info("매개변수:" + 매개변수);
if(메서드 != null & 매개변수 != null && !"".equals(parameters.trim()))
{
JSONArray jsonObject = JSONArray.fromObject(매개변수);
logger.info("json:" + jsonObject.toString());
노력하다{
List<NameValuePair> params=new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,于存储欲传送的参数
params.add(new BasicNameValuePair("data",parameters));
//添加参数
method.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
startTime = System.currentTimeMillis();
//设置编码
HttpResponse 응답=httpClient.execute(메소드);
endTime = System.currentTimeMillis();
int statusCode = response.getStatusLine().getStatusCode();
logger.info("statusCode:" + statusCode);
logger.info("调사용 API 꽃费时间(单位:毫秒):" + (endTime - startTime));
if(statusCode != HttpStatus.SC_OK){
logger.error("메소드 실패:"+response.getStatusLine());
상태 = 1;
}
//응답 본문 읽기
body=EntityUtils.toString(response.getEntity());
}catch(IO예외 e){
//发生网络异常
logger.error("예외가 발생했습니다!/n"+ExceptionUtils.getFullStackTrace(e));
//网络错误
상태 = 3;
}
마지막으로{
logger.info("调사용接구状态:" + 상태);
}
}
몸을 돌려보내다;
}
/**
* 0.成功 1.执行方法失败 2.协议错误 3.网络错误
* @return 상태
*/
공개 int getStatus() {
반품 상태;
}
/**
* @param status 설정할 상태
*/
공개 무효 setStatus(int 상태) {
this.status = 상태;
}
/**
* @startTime을 반환
*/
공개 긴 getStartTime() {
시작 시간을 반환합니다.
}
/**
* @endTime을 반환
*/
공개 긴 getEndTime() {
종료 시간을 반환합니다.
}
}