本文总结了三种获取网页数据的代码,是自己在用的时候随手整理出来的。此处仅贴出函数段,不贴出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(
new
UrlEncodedFormEntity(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(
new
InputStreamReader(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
(
int
i=
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!"
;
}
return
result;
}
//第二种
/**获取参数指定的网页代码,将其返回给调用者,由调用者对其解析
* 返回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(
new
InputStreamReader(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!"
;
}
return
result;
}
//第三种
/**获取指定地址的网页数据
* 返回数据流
*/
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;
int
responseCode = 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();
}
return
inStream;
}