复制番号代番号次のように:
パッケージ org.ssi.util;
インポート java.io.IOException;
java.util.ArrayListをインポートします。
java.util.Listをインポートします。
net.sf.json.JSONArray をインポートします。
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をインポートします。
org.apache.http.message.BasicNameValuePair をインポートします。
org.apache.http.protocol.HTTP をインポートします。
org.apache.http.util.EntityUtils をインポートします。
パブリック クラス APIHttpClient {
//インターフェイス地址
プライベート文字列 apiURL = "";
private ログ ロガー = LogFactory.getLog(this.getClass());
プライベート静的最終文字列パターン = "yyyy-MM-dd HH:mm:ss:SSS";
プライベート HttpClient httpClient = null;
プライベート HttpPost メソッド = null;
プライベートロングstartTime = 0L;
プライベートロングendTime = 0L;
プライベート int ステータス = 0;
/**
* 接続地址
* @param URL
*/
public APIHttpClient(文字列 URL){
if(url != null)
{
this.apiURL = URL;
}
if(apiURL != null)
{
httpClient = 新しい DefaultHttpClient();
メソッド = 新しい HttpPost(apiURL);
}
}
/**
* 调用API
* @paramパラメータ
* @戻る
*/
public String post(文字列パラメータ)
{
文字列本体 = null;
logger.info("パラメータ:" + パラメータ);
if(メソッド != null & パラメータ != null && !"".equals(parameters.trim()))
{
JSONArray jsonObject = JSONArray.fromObject(parameters);
logger.info("json:" + jsonObject.toString());
試す{
List<NameValuePair> params=new ArrayList<NameValuePair>();
//NameValuePair数群を構築し、欲望の伝達を保存するためのパラメータを作成します
params.add(new BasicNameValuePair("データ",パラメータ));
// 追加パラメータ
Method.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
startTime = System.currentTimeMillis();
//設置コード
HttpResponse 応答=httpClient.execute(メソッド);
endTime = System.currentTimeMillis();
int statusCode = response.getStatusLine().getStatusCode();
logger.info("ステータスコード:" + ステータスコード);
logger.info("调用API花期時間(单位:毫秒):" + (endTime - startTime));
if(ステータスコード != HttpStatus.SC_OK){
logger.error("メソッドが失敗しました:"+response.getStatusLine());
ステータス = 1;
}
// レスポンスボディを読み取る
body=EntityUtils.toString(response.getEntity());
}catch(IOException e){
//発行网络异常
logger.error("例外が発生しました!/n"+ExceptionUtils.getFullStackTrace(e));
//ネットワーク错误
ステータス = 3;
}
ついに{
logger.info("调用インターフェイス状態态:" + status);
}
}
本体を返します。
}
/**
* 0.成功 1.実行方法失敗 2.协议错误 3.网络错误
* @return ステータス
*/
public int getStatus() {
ステータスを返す。
}
/**
* @param status 設定するステータス
*/
public void setStatus(int status) {
this.status = ステータス;
}
/**
* @startTime を返す
*/
public long getStartTime() {
startTime を返します。
}
/**
* @return 終了時間を返します
*/
public long getEndTime() {
終了時間を返します。
}
}