网络相关系列之三:通过GET和POST方法发送数据

写在最前面:年少的安逸舒适在随着年龄的到来和现实生活的压迫总有一天会全数归还(其实就是《无间道》中那句:“出来混,迟早要还的!“)

so fighting!

一、GET和POST的对比:

在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GET和POST方法。而之前已经讲过了通过GET方法获取数据,今天来学习一下如何分别通过GET和POST获取数据。

举个例子:get类似于明信片,只有请求头,没有请求体。而post类似于一封信,信封上的内容为请求头;信里面的内容为请求体(请求头和请求体是分开的)。

含义如下:

  • GET:通过请求URI得到资源。一般用于获取/查询资源信息。
  • POST:用于向服务器提交新的内容。一般用于更新资源信息。

主要区别如下:

  • GET方法主要用于从服务器取回数据,POST用于向服务器提交数据
  • get类似于明信片,只有请求头,没有请求体;post类似于一封信,信封上的内容为请求头;信里面的内容为请求体
  • 使用GET方法向服务器提交的数据量较小,通常不超过1K,使用POST向服务器提交的数据量通常没有限制(明信片不能多写,而写信可以写好多内容)
  • GET请求是将所要提交的数据附在URL之后,而POST请求是将提交的数据放置在请求体当中

老罗在将到get和post请求的时候, 是这样说的:

  • 1、GET是从服务器上获取数据,POST是向服务器传送数据。
  • 2、在客户端, GET方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交
  • 3、对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。
  • 4、GET方式提交的数据最多只能有1024字节,而POST则没有此限制
  • 5、安全性问题。正如在(2)中提到,使用 GET 的时候,参数会显示在地址栏上,而 POST 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 GET ;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 POST为好
我们把上面两种描述简单总结起来就是:

get/post请求的区别:

  • get请求方式:显式请求方式,请求参数会在URL上显示,相对快,安全性较低,请求数据的大小一般不超过1kb。
  • post请求方式:隐式请求方式,请求参数将会在http请求的实体内容中进行传输,相对慢,安全性较高 ,请求数据的大小没有限制

二、URL的定义和组成:

URL:Uniform Resource Locator 统一资源定位符

URL的组成部分:以http://www.mbalib.com/china/index.htm为例

  • http://:代表超文本传输协议
  • www:代
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中使用OkHttp3进行POST和GET请求来发送数据到OneNet物联网云平台可以按照以下步骤进行。 首先,要使用OkHttp3,需要将其添加为项目的依赖项。可以在项目的build.gradle文件中添加以下代码来导入OkHttp3库: ```groovy implementation 'com.squareup.okhttp3:okhttp:3.12.1' ``` 接下来,要发送POST请求,可以使用OkHttp3的Request和RequestBody类来构建请求,并使用OkHttpClient来执行请求。 ```java OkHttpClient client = new OkHttpClient(); // 构建请求体 FormBody requestBody = new FormBody.Builder() .add("key1", "value1") .add("key2", "value2") .build(); // 构建请求 Request request = new Request.Builder() .url("https://api.heclouds.com/devices/{deviceId}/datapoints") .addHeader("api-key", "YOUR_API_KEY") .post(requestBody) .build(); // 执行请求 try { Response response = client.newCall(request).execute(); if (response.isSuccessful()) { // 请求成功 String responseData = response.body().string(); // 处理返回的数据 } else { // 请求失败 // 处理错误信息 } } catch (IOException e) { e.printStackTrace(); } ``` 上面的代码示例中,我们创建了一个FormBody作为请求体,并填充了要发送的数据。请求的URL需要替换为OneNet物联网云平台实际的URL,同时需要在请求头中添加API密钥。 对于GET请求,可以使用OkHttp3的Url类来构建请求,同样使用OkHttpClient来执行请求。 ```java OkHttpClient client = new OkHttpClient(); // 构建请求 HttpUrl.Builder urlBuilder = HttpUrl.parse("https://api.heclouds.com/devices/{deviceId}/datapoints").newBuilder(); urlBuilder.addQueryParameter("key1", "value1"); urlBuilder.addQueryParameter("key2", "value2"); // 执行请求 try { Request request = new Request.Builder() .url(urlBuilder.build()) .addHeader("api-key", "YOUR_API_KEY") .get() .build(); Response response = client.newCall(request).execute(); if (response.isSuccessful()) { // 请求成功 String responseData = response.body().string(); // 处理返回的数据 } else { // 请求失败 // 处理错误信息 } } catch (IOException e) { e.printStackTrace(); } ``` 同样地,GET请求的URL需要替换为OneNet物联网云平台实际的URL,同时在请求头中添加API密钥。GET请求需要使用Url类来构建URL,并通过addQueryParameter()方法添加查询参数。 以上就是使用OkHttp3在Android中发送POST和GET请求到OneNet物联网云平台的简要步骤。根据实际的接口定义和需求,可能需要调整请求的参数和处理返回数据的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值