温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中基于HTTP的网络技术

发布时间:2020-08-10 06:39:57 来源:ITPUB博客 阅读:259 作者:山有木xi 栏目:移动开发

Android中的网络技术是基于HTTP的访问方法,类似QQ,微信,微博等等这些软件,都使用了大量的通信方法,这已经是Android应用必不可少的内容

WebView

这个控件可以在Android应用中替代浏览器来显示网页,具体使用方法如下

  • 获取WebView对象

  • 获取WebSettings对象

  • 启用JavaScript

  • 将页面WebView中

  • 载入网页

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView= (WebView) findViewById(R.id.webView);
        WebSettings ws=webView.getSettings();
        ws.setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://www.sina.com.cn");
    }
}

HttpURLConection

WebView封装了HTTP客户端的所有操作,当需要直接获得服务器响应时,就可以使用HttpURLConection了

  • 调用openConnection方法获得实例对象

  • 设置HTTP请求方式

  • 设置请求相关参数

  • 处理返回结果

 HttpURLConnection con=null;
        BufferedReader reader=null;
        try {
            URL url=new URL("http:www.baidu.com");
            con=(HttpURLConnection)url.openConnection();
            con.setRequestMethod("GET");
            Log.e("doUrlGet: ",con.getContentLength()+"");
            if(true) return;
            InputStream in=con.getInputStream();
            reader =new BufferedReader(new InputStreamReader(in));
            StringBuilder result=new StringBuilder();
            String s;
            s=reader.readLine();
            while(s!=null){
                result.append(s);
                s=reader.readLine();
            }

OkHttp

 HttpURLConnection将服务器响应结果封装在InputStream中,需要通过代码将其读取,而OkHttp相比之下就简单许多

  • 获得OkHttpClient对象

  • 通过Request.Builder创建对象

  • 调用execute方法执行请求

  • 获得字符串形式返回结果

OkHttpClient okClient=new OkHttpClient();
            Request.Builder builder=new Request.Builder();
            builder.url("http://www.baidu.com");
            Request request=builder.build();
            Response response=okClient.newCall(request).execute();
            String result=response.body().string();
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI