मैं अपाचे एचटीपी क्लाइंट के साथ एक पृष्ठ प्राप्त कर रहा हूं और मैं सर्वर उत्तर के http body को स्ट्रिंग में संग्रहीत करना चाहता हूं ताकि मैं इस स्ट्रिंग में हेरफेर कर सकूं और इसे कंसोल पर प्रिंट करें।जावा में अपाचे एचटीपी क्लाइंट, instream.toString = org.apache.http.conn.EofSensorInputStream
17:52:01,862 INFO Driver:53 - fetchPage STARTING
17:52:07,580 INFO Driver:73 - fetchPage ENDING, took 5716
[email protected]
fetchPage कक्षा::
public String fetchPage(String part){
log.info("fetchPage STARTING");
long start = System.currentTimeMillis();
String reply;
String searchurl = URL + URL_SEARCH_BASE + part + URL_SEARCH_TAIL;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(searchurl);
HttpResponse response;
try {
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
int l;
byte[] tmp = new byte[2048];
while ((l = instream.read(tmp)) != -1) {
}
long elapsedTimeMillis = System.currentTimeMillis()-start;
log.info("fetchPage ENDING, took " + elapsedTimeMillis);
reply = instream.toString();
System.out.println(reply);
return reply;
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
यहाँ समझने के लिए कुंजी बात यह है कि 'toString()' एक 'InputStream पर 'स्ट्रिंग' के रूप में अपनी सामग्री को पढ़ने की विधि नहीं है, बल्कि ऑब्जेक्ट का एक सरल स्ट्रिंग प्रस्तुति प्राप्त करने के लिए। आम तौर पर (इस मामले में) एक 'इनपुटस्ट्रीम' में उपयोगी स्ट्रिंग प्रस्तुति नहीं होती है जो यह प्रदान कर सकती है, इसलिए यह केवल डिफ़ॉल्ट 'ऑब्जेक्ट .toString() 'का उपयोग करता है। – ColinD