189 8069 5689

Http-创新互联

1.HttpClient综述
HttpClient有两个实现子类,一个是AndroidHttpClient,一个是Default
HttpClient;AndroidHttpClient继承自DefaultHttpClient,是针对Android
设备的对某些参数进行了默认设置。Http
DefaultHttpClient client = new DefaultHttpClient();

可以对client设置参数(HttpParams),如连接超时
HttpParams params = new BasicHttpParams();
params.setIntParameter(AllClientPNames.CONNECTION_TIMEOUT,10*1000);
client.setParams(params);

创新互联公司是专业的永泰网站建设公司,永泰接单;提供成都网站设计、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行永泰网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

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");
step2.得到HttpURLConnection对象
HttpURLConnection urlConn = (HttpURLConnection) url
                .openConnection();
step3.对connection对象进行设置
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setRequestMethod("POST");//注意:这里必须为大写urlConn.setUseCaches(false);
step4.调用connection的connect()方法。
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();
}

4.WebView控件的使用

WebView用来加载网页
step0.manifest.xml增加联网权限

step1.在layout中定义
   android:id="@+id/wv"
   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://cdxtjz.cn/article/cdheoc.html

其他资讯