复制代码代码如下 :
paquet org.ssi.util ;
importer java.io.IOException ;
importer java.util.ArrayList ;
importer java.util.List ;
importer net.sf.json.JSONArray ;
importer org.apache.commons.lang.exception.ExceptionUtils ;
importer org.apache.commons.logging.Log ;
importer org.apache.commons.logging.LogFactory ;
importer org.apache.http.HttpResponse ;
importer org.apache.http.HttpStatus ;
importer org.apache.http.NameValuePair ;
importer org.apache.http.client.HttpClient ;
importer org.apache.http.client.entity.UrlEncodedFormEntity ;
importer org.apache.http.client.methods.HttpPost ;
importer org.apache.http.impl.client.DefaultHttpClient ;
importer org.apache.http.message.BasicNameValuePair ;
importer org.apache.http.protocol.HTTP ;
importer org.apache.http.util.EntityUtils ;
classe publique APIHttpClient {
//接口地址
chaîne privée apiURL = "" ;
Enregistreur de journaux privé = LogFactory.getLog(this.getClass());
modèle de chaîne final statique privé = "aaaa-MM-jj HH: mm: ss: SSS";
privé HttpClient httpClient = null ;
méthode HttpPost privée = null ;
temps de démarrage long privé = 0L ;
temps de fin long privé = 0L ;
statut int privé = 0 ;
/**
* 接口地址
* URL @param
*/
public APIHttpClient (URL de chaîne) {
si(url != nul)
{
this.apiURL = url ;
}
si(apiURL != null)
{
httpClient = nouveau DefaultHttpClient();
méthode = nouveau HttpPost(apiURL);
}
}
/**
* API API
* Paramètres @param
* @retour
*/
publication de chaîne publique (paramètres de chaîne)
{
Corps de chaîne = nul ;
logger.info("paramètres:" + paramètres);
if(method != null & paramètres != null && !"".equals(parameters.trim()))
{
JSONArray jsonObject = JSONArray.fromObject(paramètres);
logger.info("json:" + jsonObject.toString());
essayer{
List<NameValuePair> params=new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
params.add(new BasicNameValuePair("data",parameters));
//添加参数
method.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
startTime = System.currentTimeMillis();
//设置编码
Réponse HttpResponse=httpClient.execute(méthode);
endTime = System.currentTimeMillis();
int statusCode = réponse.getStatusLine().getStatusCode();
logger.info("statusCode:" + statusCode);
logger.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));
si(statusCode != HttpStatus.SC_OK){
logger.error("Échec de la méthode :"+response.getStatusLine());
statut = 1 ;
}
//Lire le corps de la réponse
body=EntityUtils.toString(response.getEntity());
}catch(IOException e){
//发生网络异常
logger.error("une exception s'est produite !/n"+ExceptionUtils.getFullStackTrace(e));
//网络错误
statut = 3 ;
}
enfin{
logger.info("调用接口状态:" + statut);
}
}
rendre le corps ;
}
/**
* 0.成功 1.执行方法失败 2.协议错误 3.网络错误
* @renvoie le statut
*/
public int getStatus() {
statut de retour ;
}
/**
* @param status le statut à définir
*/
public void setStatus(int statut) {
this.status = statut ;
}
/**
* @renvoie l'heure de début
*/
public long getStartTime() {
renvoie startTime ;
}
/**
* @retourne l'heure de fin
*/
public long getEndTime() {
retourner l'heure de fin ;
}
}