本文總結瞭三種獲取網頁數據的代碼,是自己在用的時候隨手整理出來的。此處僅貼出函數段,不貼出import瞭,用的時候可以用eclipse自動import一下就行瞭。函數的詳細用途描述請看代碼中註釋。調用的時候請對應函數需要的參數。
//第一種
/**獲取參數(ArrayList<NameValuePair> nameValuePairs,String url)後post給遠程服務器
* 將獲得的返回結果(String)返回給調用者
* 本函數適用於查詢數量較少的時候
*/
public String posturl(ArrayList<NameValuePair> nameValuePairs,String url){
String result ="";
String tmp="";
InputStream is =null;
try{
HttpClient httpclient =new DefaultHttpClient();
HttpPost httppost =new HttpPost(url);
httppost.setEntity(newUrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
return"Fail to establish http connection!";
}
try{
BufferedReader reader =new BufferedReader(newInputStreamReader(is,"utf-8"));
StringBuilder sb =new StringBuilder();
String line =null;
while((line = reader.readLine()) != null) {
sb.append(line +"\n");
}
is.close();
tmp=sb.toString();
}catch(Exception e){
return"Fail to convert net stream!";
}
try{
JSONArray jArray =new JSONArray(tmp);
for(inti=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Iterator<?> keys=json_data.keys();
while(keys.hasNext()){
result += json_data.getString(keys.next().toString());
}
}
}catch(JSONException e){
return"The URL you post is wrong!";
}
returnresult;
}
//第二種
/**獲取參數指定的網頁代碼,將其返回給調用者,由調用者對其解析
* 返回String
*/
public String posturl(String url){
InputStream is =null;
String result ="";
try{
HttpClient httpclient =new DefaultHttpClient();
HttpPost httppost =new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
return"Fail to establish http connection!"+e.toString();
}
try{
BufferedReader reader =new BufferedReader(newInputStreamReader(is,"utf-8"));
StringBuilder sb =new StringBuilder();
String line =null;
while((line = reader.readLine()) != null) {
sb.append(line +"\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
return"Fail to convert net stream!";
}
returnresult;
}
//第三種
/**獲取指定地址的網頁數據
* 返回數據流 www.aiwalls.com
*/
public InputStream streampost(String remote_addr){
URL infoUrl =null;
InputStream inStream =null;
try{
infoUrl =new URL(remote_addr);
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
intresponseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
inStream = httpConnection.getInputStream();
}
}catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
returninStream;
}
摘自 虛懷若谷