การคัดลอกรหัสมีดังนี้:
นำเข้า java.io.bufferedreader;
นำเข้า java.io.ioException;
นำเข้า Java.io.InputStream;
นำเข้า Java.io.InputStreamReader;
นำเข้า org.apache.Commons.httpClient.defaulthttpmethodretryHandler;
นำเข้า org.apache.commons.httpclient.header;
นำเข้า org.apache.Commons.httpClient.httpClient;
นำเข้า org.apache.commons.httpclient.httpexception;
นำเข้า org.apache.commons.httpclient.httpstatus;
นำเข้า org.apache.commons.httpclient.namevaluePair;
นำเข้า org.apache.commons.httpclient.cookie.cookiepolicy;
นำเข้า org.apache.commons.httpclient.methods.getMethod;
นำเข้า org.apache.commons.httpclient.methods.postmethod;
นำเข้า org.apache.commons.httpclient.params.httpmethodparams;
ระดับสาธารณะ testhttpclient {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
// todo วิธีการที่สร้างขึ้นอัตโนมัติสตับ
// กำหนดอินสแตนซ์ของ httpClient
httpClient httpplient = new httpClient ();
// สร้างอินสแตนซ์ของเมธอด
getMethod getMethod = ใหม่ getMethod ("http://vevb.com");
// ใช้นโยบายการกู้คืนเริ่มต้นที่จัดทำโดยระบบ
//getMethod.getParams().SetParameter(HTTPMETHODPARAMS.RETRY_HANDLER, DEFAULTHTTPMETHODRETRYHANHANDLER ());
// สร้างอินสแตนซ์วิธีการโพสต์
postmethod postmethod = ใหม่ UTF8PostMethod ("http://vevb.com");
-
//// กรอกค่าของฟิลด์แต่ละฟอร์ม
// namevaluePair [] data = {namevaluePair ใหม่ ("user_name", "user_name"), namevaluePair ใหม่ ("รหัสผ่าน", "รหัสผ่าน")};
-
//// ใส่ค่าของแบบฟอร์มลงในวิธีการโพสต์
//postmethod.setrequestbody(Data);
-
//postmethod.getParams (). setParameter (
//"phttp.protocol.cookie-policy",CookiePolicy.Browser_compatibility);
//postmethod.setrequestheader("referer "," http://vevb.com ");
พยายาม{
// ดำเนินการเมธอด
// int statusCode = httpClient.executemethod (getMethod);
// ดำเนินการวิธีการโพสต์
Int StatusCode = httpClient.executemethod (postmethod);
if (statusCode == httpstatus.sc_moved_temporally) {
Header Locationheader = postmethod.getResponseHeader ("ตำแหน่ง");
สตริงตำแหน่ง = null;
if (locationheader! = null) {
สถานที่ = LocationHeader.getValue ();
-
postmethod = postmethod ใหม่ (ตำแหน่ง);
postmethod.setrequestheader ("ผู้อ้างอิง", "http://vevb.com/login");
namevaluePair [] data1 = {namevaluePair ใหม่ ("user_name", "user_name"), namevaluePair ใหม่ ("รหัสผ่าน", "รหัสผ่าน")};
postmethod.setRequestbody (data1);
postmethod.getParams (). setParameter (
"http.protocol.cookie-policy", cookiepolicy.browser_compatibility);
Int StatusCode1 = httpClient.executemethod (postmethod);
if (statusCode1! = httpstatus.sc_ok) {
System.out.println ("วิธีการผิด" + postmethod.getStatusline ());
-
-
if (statusCode! = httpstatus.sc_ok) {
System.out.println ("วิธีการผิด" + postmethod.getStatusline ());
-
inputStream responsebody = postmethod.getResponseBodyStream ();
bufferedReader reader = new BufferedReader (ใหม่ inputStreamReader (ResponseBody, "UTF-8"));
String line = reader.readline ();
ในขณะที่ (บรรทัด! = null) {
System.out.println (สตริงใหม่ (line.getBytes ()));
line = reader.readline ();
-
-
จับ (httpexception e) {
// TODO: จัดการข้อยกเว้น
System.out.println ("โปรดตรวจสอบที่อยู่ http ที่คุณให้ไว้!");
E.PrintStackTrace ();
} catch (ioexception e) {
// TODO: จัดการข้อยกเว้น
System.out.println ("บรรทัดผิด!");
E.PrintStackTrace ();
} ในที่สุด{
getMethod.releaseconnection (); // ปล่อยลิงก์
postmethod.releaseconnection ();
-
-
// คลาสชั้นในสำหรับการสนับสนุน UTF-8
คลาสคงที่ระดับสาธารณะ UTF8PostMethod ขยาย postmethod {
UTF8POSTMETHOD สาธารณะ (String URL) {
Super (URL);
-
@Override
สตริงสาธารณะ getRequestCharset () {
// return super.getRequestCharset ();
กลับ "UTF-8";
-
-
-