android怎么获取网页数据
发布网友
发布时间:2022-04-20 17:21
我来回答
共1个回答
热心网友
时间:2023-07-20 09:08
//第一种
/**获取参数(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.2cto.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;
}