HttpClient有两个实现子类,一个是AndroidHttpClient,一个是Default
HttpClient;AndroidHttpClient继承自DefaultHttpClient,是针对Android
设备的对某些参数进行了默认设置。
 
  DefaultHttpClient client = new DefaultHttpClient();可以对client设置参数(HttpParams),如连接超时
HttpParams params = new BasicHttpParams();
params.setIntParameter(AllClientPNames.CONNECTION_TIMEOUT,10*1000);
client.setParams(params);
1)对于get请求
HttpGet request = new HttpGet("http://www.renren.com?email="
       +"zhangsan"+"&password="+"123");
HttpResponse response= client.execute(request);
int statusCode = respose.getStatusLine().getStatusCode();
if(statusCode==HttpStatus.SC_OK){
    String str= EntityUtils.toString(response.getEntity());
    System.out.println(str);
}2)对于post请求
HttpPost request = new HttpPost("http://www.renren.com");
List pairs = new ArrayList();
pairs.add(new BasicNameValuePair("email","zhangsan@126.com"));
pairs.add(new BasicNameValuePair("password","123"));
UrlEncodedFormEntity formEntity= new UrlEncodedFormEntity(pairs);
//或者指定编码,如下
//UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(pairs,"UTF-8");
request.setEntity(formEntity);
HttpResponse response= client.execute(request);
int statusCode = respose.getStatusLine().getStatusCode();
if(statusCode==HttpStatus.SC_OK){
    String str= EntityUtils.toString(response.getEntity());
    System.out.println(str);
}  EntityUtils是一个工具类,所以它的方法为静态方法,它用来解析实体。提供的方法有
EntityUtils.toString(HttpEntity entity)-->String 作用将response的entity
按照默认编码转为字符串
EntityUtils.toString(HttpEntity entity, String defaultCharset) -->String
按照指定编码转为字符串
EntityUtils.toByteArray(HttpEntity entity)-->byte[] 作用是将response
的entity转为byte数组,如:可以处理图片
如下边例子:
HttpEntity entity = response.getEntity();
byte[] bs = EntityUtils.toByteArray(entity);
Bitmap bitmap= BitmapFactory.decodeByteArray(bs, 0, bs.length);得到Bitmap就可以设置到ImageView中了。
注意:需要联网权限
2.注意
127.0.0.1 和 localhost都表示android手机自己本身的地址。
3.HttpUrlConnection综述
HttpUrlConnection可以处理get请求也可以处理post请求。
get方式介绍:
使用方式:
step1.
URL url = new URL("http://119.97.113.180:8080/test/t?username=zhangsan&password=123");step2.通过URL创建HttpUrlConnection对象
HttpUrlConnectioin connection = url.openCennection();step3.得到输入流。读取服务器返回的数据。
step4.关闭流
step5.connection.disconnect();断开连接。
String httpUrl = "http://119.97.113.180:8080/test/t?username=zhangsan&password=123"
URL url= new URL(httpUrl);
if (url != null){
    HttpURLConnection urlConn= (HttpURLConnection) url
      .openConnection();
    InputStreamReader in= new InputStreamReader(urlConn
      .getInputStream());
    BufferedReader buffer= new BufferedReader(in);
    String inputLine= null;
while ((inputLine = buffer.readLine()) != null) {
        resultData+= inputLine + "
";
    }
in.close();
urlConn.disconnect();post方式:
step1.创建URL对象
URL url = new URL("http://192.168.1.108:8080/test/t");HttpURLConnection urlConn = (HttpURLConnection) url
                .openConnection();
step3.对connection对象进行设置
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setRequestMethod("POST");//注意:这里必须为大写urlConn.setUseCaches(false);step5.得到输出流,输出传给服务器的参数,然后关闭流。
step6.得到输入流,读取服务器响应的数据,然后关闭流。
step7.connection.disconnect();
String httpUrl = "http://192.168.1.108:8080/test/t";
String resultData= "";
URL url= new URL(httpUrl);
if (url != null) {
        HttpURLConnection urlConn= (HttpURLConnection) url
                .openConnection();
        urlConn.setDoInput(true);
        urlConn.setDoOutput(true);
        urlConn.setRequestMethod("POST");
        urlConn.setUseCaches(false);
        urlConn.connect();
        DataOutputStream out= new DataOutputStream(
                urlConn.getOutputStream());
// 用户名和密码        String content = "username=" + URLEncoder.encode("******")
+ "&password=" + "*******";
        out.writeBytes(content);
        out.flush();
        out.close();
        BufferedReader reader= new BufferedReader(
new InputStreamReader(urlConn.getInputStream()));
        String inputLine= null;
while ((inputLine = reader.readLine()) != null) {
            resultData+= inputLine + "
";
        }
        reader.close();
        urlConn.disconnect();
}WebView用来加载网页
step0.manifest.xml增加联网权限
step1.在layout中定义
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   />
step2.在Activity中
 wv = (WebView) findViewById(R.id.wv);
wv.loadUrl("http://www.baiud.com");
step3.保证每次都使用WebView打开连接。
wv.setWebViewClient(new WebViewClient(){
  @Override
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      return true;//一定要为true
   }
});
网页标题:Http-创新互联
标题来源:http://www.scyingshan.cn/article/cdheoc.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 