package cc.testhtmlcontent;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.protocol.HTTP;
import android.os.Bundle;
import android.app.Activity;
/**
* Demo描述:
* 1 为HttpClient设置证书(CredentialsProvider 证书提供者)
* 2 然后获取HTML中的内容
*
*/
public class MainActivity extends Activity {
private final String USERNAME="your username";
private final String PASSWORD="your password";
private final String URL="your url";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getHTMLContent();
}

private void getHTMLContent() {
try {
new Thread(new Runnable() {
public void run() {
ArrayList<NameValuePair> nameValuePairArrayList = new ArrayList<NameValuePair>();
String HTMLContent = getHTMLContentByPost(nameValuePairArrayList, URL,false);
System.out.println("HTMLContent=" + HTMLContent);
}
}).start();
} catch (Exception e) {
}


}


public String getHTMLContentByPost(ArrayList<NameValuePair> nameValuePairArrayList,String url, boolean hasCredential) {
InputStream inputStream = null;
String line = "";
String htmlContentString = "";
HttpPost httpPost = new HttpPost(url);
DefaultHttpClient httpClient = new DefaultHttpClient();
//当需要证书的时候
//对HttpClient进行如下设置:
if (hasCredential) {
AuthScope authScope=new AuthScope(AuthScope.ANY_HOST,AuthScope.ANY_PORT);
UsernamePasswordCredentials usernamePasswordCredentials=new UsernamePasswordCredentials(USERNAME, PASSWORD);
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(authScope, usernamePasswordCredentials);
httpClient.setCredentialsProvider(credentialsProvider);
}

try {
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 8000);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 9000);
HttpConnectionParams.setTcpNoDelay(httpClient.getParams(), true);
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairArrayList, HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity httpEntity = httpResponse.getEntity();
inputStream = httpEntity.getContent();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream, HTTP.UTF_8);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((line = bufferedReader.readLine()) != null) {
htmlContentString += line;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
clientShutdown(httpClient);
return htmlContentString;
}


//关闭client链接
public static void clientShutdown(HttpClient client) {
client.getConnectionManager().shutdown();
}


}

更多相关文章

  1. android studio发布版和测试版证书SHA1获取
  2. Android studio获取证书指纹 (SHA1)的方法
  3. Android Studio中获取sha1证书的方法
  4. android 屏蔽证书验证 CertPathValidatorException: Trust ancho
  5. 创建 Android 上使用的自签名证书(Creating self-signed certific
  6. android 内容提供者查询单个使用URI匹配器
  7. Android 中文api,Debug签名证书过期(Expiry of the Debug Certific
  8. android 自签名证书生成命令

随机推荐

  1. Android(安卓)多线程AsyncTask详解
  2. android环境变量配置
  3. android的测试工具CTS
  4. JPCT-AE for Android(安卓)3D (一)------
  5. Android的6种布局管理器总结
  6. 前端h5与 Android/iOS 交互传参
  7. Android(安卓)4.0 Launcher2源码分析——
  8. Android(安卓)消息机制之Message
  9. Android(安卓)利用drawable中的gradient
  10. Android(安卓)Layout XML属性