إرجاع البيانات عبر طلب راحة http
انسخ رمز الكود كما يلي:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.Apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* فئة الأداة لتعبئة طلب http
*
* @author Gu Wei[guwei] بتاريخ 14-4-22.3:17 مساءً
*/
الطبقة العامة HttpClientUtils {
سجل السجل النهائي الثابت الخاص = LogFactory.getLog(HttpClientUtils.class);
/**
* تهيئة HttpClient
*/
خاص ثابت HttpClient httpClient = null;
/**
* إنتاج مثيل HttpClient
* طريقة المصنع العامة والثابتة، قم بإنشاء المفردة فقط عند الحاجة
*
* @يعود
*/
عام ثابت HttpClient getHttpClient() {
إذا (httpClient == فارغ) {
httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager());
}
إرجاع httpClient؛
}
/**
* استدعاء طريقة POST
*
* @param URL
*param params المعلمة هي كائن زوج قيمة المفتاح NameValuePair
* سلسلة الاستجابة @return
* @throws java.io.UnsupportedEncodingException
*/
سلسلة ثابتة عامة ExecuteByPOST(String url, List<NameValuePair> params) {
HttpClient httpclient = getHttpClient();
HttpPost post = new HttpPost(url);
ResponseHandler<String> ResponseHandler = new BasicResponseHandler();
سلسلة الاستجابة Json = فارغة؛
يحاول {
إذا (المعلمات != فارغة) {
post.setEntity(new UrlEncodedFormEntity(params));
}
ResponseJson = httpclient.execute(post, ResponseHandler);
log.info("نتيجة طلب HttpClient POST:" + ResponseJson);
} قبض على (ClientProtocolException ه) {
printStackTrace();
log.info("استثناء طلب HttpClient POST:" + e.getMessage());
} قبض (IOException ه) {
printStackTrace();
} أخيراً {
httpclient.getConnectionManager(). CloseExpiredConnections();
httpclient.getConnectionManager(). CloseIdleConnections(30, TimeUnit.SECONDS);
}
رد الاستجابةJson؛
}
/**
* الحصول على طلب الطريقة
*
* @param عنوان URL مع العنصر النائب للمعلمة، على سبيل المثال: http://****/User/user/center.aspx?_action=GetSimpleUserInfo&codes={0}&email={1}
* @param params مصفوفة قيمة المعلمة، والتي يجب أن تتوافق مع ترتيب العناصر النائبة في عنوان URL
* سلسلة الاستجابة @return
* @throws java.io.UnsupportedEncodingException
*/
سلسلة ثابتة عامة ExecuteByGET(String url, Object[] params) {
HttpClient httpclient = getHttpClient();
رسائل السلسلة =MessageFormat.format(url,params);
HttpGet get = new HttpGet(messages);
ResponseHandler<String> ResponseHandler = new BasicResponseHandler();
سلسلة الاستجابة Json = فارغة؛
يحاول {
ResponseJson = httpclient.execute(get, ResponseHandler);
log.info("نتيجة طلب HttpClient GET:" + ResponseJson);
} قبض على (ClientProtocolException ه) {
printStackTrace();
log.info("استثناء طلب HttpClient GET:" + e.getMessage());
} قبض (IOException ه) {
printStackTrace();
log.info("استثناء طلب HttpClient GET:" + e.getMessage());
} أخيراً {
httpclient.getConnectionManager(). CloseExpiredConnections();
httpclient.getConnectionManager(). CloseIdleConnections(30, TimeUnit.SECONDS);
}
رد الاستجابةJson؛
}
/**
* @param URL
* @يعود
*/
سلسلة ثابتة عامة ExecuteByGET(String url) {
HttpClient httpclient = getHttpClient();
HttpGet get = new HttpGet(url);
ResponseHandler<String> ResponseHandler = new BasicResponseHandler();
سلسلة الاستجابة Json = فارغة؛
يحاول {
ResponseJson = httpclient.execute(get, ResponseHandler);
log.info("نتيجة طلب HttpClient GET:" + ResponseJson);
} قبض على (ClientProtocolException ه) {
printStackTrace();
log.info("استثناء طلب HttpClient GET:" + e.getMessage());
} قبض (IOException ه) {
printStackTrace();
log.info("استثناء طلب HttpClient GET:" + e.getMessage());
} أخيراً {
httpclient.getConnectionManager(). CloseExpiredConnections();
httpclient.getConnectionManager(). CloseIdleConnections(30, TimeUnit.SECONDS);
}
رد الاستجابةJson؛
}
}