当前位置: 首页 > news >正文

太原中企动力网站建设西安百度关键词推广

太原中企动力网站建设,西安百度关键词推广,移动网站网上营业厅,凡科教育小程序怎么样目录 一、使用HttpURLConnection 1、使用Android的HttpURLConnection步骤 1)获取HttpURLConnection实例 2)设置HTTP请求使用的方法 3)定制HTTP请求,如连接超时、读取超时的毫秒数 4)调用getInputStream()方法获取返回的输入流 5)关闭HTTP连接 2、…

目录

一、使用HttpURLConnection

1、使用Android的HttpURLConnection步骤

1)获取HttpURLConnection实例

 2)设置HTTP请求使用的方法

3)定制HTTP请求,如连接超时、读取超时的毫秒数

4)调用getInputStream()方法获取返回的输入流

5)关闭HTTP连接

2、实例

 如何将数据提交给服务器?

二、使用OkHttp

1、使用OkHttpClient的步骤

1)创建OkHttpClient实例

2)创建Request对象

3)设置目标网络的URL地址

4)发送请求获取服务器返回的数据

5)获得返回的具体内容

2、实例


一、使用HttpURLConnection

1、使用AndroidHttpURLConnection步骤

1)获取HttpURLConnection实例

URL url = new URL("http://www.baidu.com");
HttpURLConnection connection = (HtppURLConnection) url.openConnection();

 2)设置HTTP请求使用的方法

        GET表示希望从服务器那里获取数据,而POST表示希望提交数据给服务器。

connection.setRequestMethod("GET");

3)定制HTTP请求,如连接超时、读取超时的毫秒数

connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);

4)调用getInputStream()方法获取返回的输入流

InputStream in = connection.getInputStream();

5)关闭HTTP连接

connection.disconnect();

2、实例

新建NetWorkTest项目,

修改activity_main.xml代码,如下:

        ScrollView可以以滚动的形式查看屏幕外的那部分内容,Button用于发送HTTP请求,TextView用于将服务器返回的数据显示出来。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent" ><Buttonandroid:id="@+id/send_request"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Send Request" /><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent" ><TextViewandroid:id="@+id/response_text"android:layout_width="match_parent"android:layout_height="wrap_content" /></ScrollView></LinearLayout>

修改MainActivity的代码,如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {TextView responseText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendRequest = (Button) findViewById(R.id.send_request);responseText = (TextView) findViewById(R.id.response_text);sendRequest.setOnClickListener(this);}@Overridepublic void onClick(View v) {if (v.getId() == R.id.send_request) {sendRequestWithHttpURLConnection();}}private void  sendRequestWithHttpURLConnection() {new Thread(new Runnable() {@Overridepublic void run() {HttpURLConnection connection = null;BufferedReader reader = null;try {URL url = new URL("https://www.baidu.com");connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(8000);connection.setReadTimeout(8000);InputStream in = connection.getInputStream();
//                    下面对获取到的输入流进行读取reader = new BufferedReader(new InputStreamReader(in));StringBuilder response = new StringBuilder();String line;while((line = reader.readLine()) != null){response.append(line);}showResponse(response.toString());} catch (Exception e) {e.printStackTrace();}finally {if(reader != null){try {reader.close();}catch (IOException e){e.printStackTrace();}}if(connection != null){connection.disconnect();}}}}).start();}private void showResponse(final String response) {runOnUiThread(new Runnable() {@Overridepublic void run() {// 在这里进行UI操作,将结果显示到界面上responseText.setText(response);}});}}

最后声明网络权限,修改AndroidManifest.xml代码,如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><uses-permission android:name="android.permission.INTERNET" />................

效果如下:

这是百度浏览器的HTML代码。

 如何将数据提交给服务器?

如我们想向服务器提交用户名和密码,代码如下:

connection.setRequestMethod("POST");
DataOutputStream out = new DataOutputStream(connection.getOutputStream);
out.writeBytes("username=admin&password=123456");

二、使用OkHttp

        以上方法是原生方法,接下来使用的OkHttp是比较出色的网络通信库。

        OkHttp是一个专注于性能和易用性的 HTTP 客户端。

        –OkHttp 库的设计和实现的首要目标是高效。这也是选择 OkHttp 的重要理由之一。OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连接池来复用连接以提高效率。OkHttp 提供了对 GZIP 的默认支持来降低传输内容的大小。OkHttp 也提供了对 HTTP 响应的缓存机制,可以避免不必要的网络请求。当网络出现问题时,OkHttp 会自动重试一个主机的多个 IP 地址。

        在使用之前,需要现在项目中添加OkHttp库的依赖,修改app/build.gradle文件,在dependencies闭包中添加以下内容。

dependencies {...........implementation 'com.squareup.okhttp3:okhttp:3.4.1'

1、使用OkHttpClient的步骤

1)创建OkHttpClient实例

OkHttpClient client = new OkHttpClient();

2)创建Request对象

Request request = new Request.Builder().build();

3)设置目标网络的URL地址

Request request = new Request.Builder().url("http://www.baidu.com").build();

4)发送请求获取服务器返回的数据

Response response = client.newCall(request).execute();

5)获得返回的具体内容

String responseData = response.body().string();

如果发起一条POST请求,需要先构建一个RequestBody对象来存放待提交的参数,如下:

RequestBody requestBody = new FormBody.Builder().add("username","admin").add("password","123456").build();

然后再Request.Builder中调用post()方法,将RequestBody对象传入:

Request request = new Request.Builder().url("http://www.baidu.com").post(requestBody).build();

下面的操作和GET请求一样,调用execute()方法来发送请求并获取服务器返回的数据。

2、实例

在上面的项目中修改。

布局部分不动,修改MainActivity代码,如下:

        在上面的基础上只是添加了一个sendRequestWithOkHttp()方法,并在Send Request按钮的点击事件里去调用这个方法。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {TextView responseText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendRequest = (Button) findViewById(R.id.send_request);responseText = (TextView) findViewById(R.id.response_text);sendRequest.setOnClickListener(this);}@Overridepublic void onClick(View v) {if (v.getId() == R.id.send_request) {
//             sendRequestWithHttpURLConnection();sendRequestWithOkHttp();}}private void sendRequestWithOkHttp() {new Thread(new Runnable() {@Overridepublic void run() {try {OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url("https://www.bjtu.edu.cn").build();Response response = client.newCall(request).execute();String responseData = response.body().string();showResponse(responseData);} catch (Exception e) {e.printStackTrace();}}}).start();}private void sendRequestWithHttpURLConnection() {// 开启线程来发起网络请求new Thread(new Runnable() {@Overridepublic void run() {HttpURLConnection connection = null;BufferedReader reader = null;try {URL url = new URL("https://www.bjtu.edu.cn");connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setConnectTimeout(8000);connection.setReadTimeout(8000);InputStream in = connection.getInputStream();// 下面对获取到的输入流进行读取reader = new BufferedReader(new InputStreamReader(in));StringBuilder response = new StringBuilder();String line;while ((line = reader.readLine()) != null) {response.append(line);}showResponse(response.toString());} catch (Exception e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}if (connection != null) {connection.disconnect();}}}}).start();}private void showResponse(final String response) {runOnUiThread(new Runnable() {@Overridepublic void run() {// 在这里进行UI操作,将结果显示到界面上responseText.setText(response);}});}}

http://www.dinnco.com/news/22669.html

相关文章:

  • 聚美联盟网站怎么做免费网站怎么做出来的
  • 做网站租服务器搜索引擎最新排名
  • 做兼职什么网站最靠谱吗百度指数分析案例
  • 网站设计模板之家网络营销课程个人总结
  • 有谁做彩票网站吗seo优化就业前景
  • 欧洲外贸网站有哪些海外社交媒体营销
  • 商务型企业网站建设it培训班出来工作有人要么
  • 深圳好的网站制作公司网络营销案例分析
  • 百度推广自己做网站吗网络营销的推广方法
  • 秦皇岛哪里能做网站网站制作代码
  • 江门网站建设推广平台广东东莞疫情最新消息
  • 个人网站开发计划书怎么开发一款app软件
  • 长春高铁建站网络运营师资格证
  • wordpress 默认头像 本地seo推广软件代理
  • 东莞做网站建设网站建设杭州
  • 自己可以建立网站吗品牌推广战略
  • android手机开发seo关键词排名怎么提升
  • 美橙网站注册站长工具收录查询
  • 广告设计案例网站冬镜seo
  • 大型网站 div网站营销策略有哪些
  • 网站建设成功案例宣传国家市场监管总局
  • 怎么做网站设计程序上海排名seo公司
  • 中国建筑工业出版社seo的基本工作内容
  • vue做的网站百度抓取品牌营销策略研究
  • 代理网络游戏平台深圳排名seo
  • 济南做网站最好的单位网上推
  • 做图片的网站企业培训平台
  • 克隆网站怎么做后台权重查询
  • 挂号网站制作百度风云排行榜官网
  • 网站备案ip网站建站流程