esp8266---http协议

http.post()
执行HTTP POST请求。 请注意,不支持并发请求。

Syntax
http.post(url, headers, body, callback)

Parameters
url
要获取的URL,包括http://或https://前缀
headers
要附加的可选附加标题,包括\ r \ n; 可能是空
body
post 的主体; 必须已经以适当的格式编码,但可能为空
callback
收到响应或发生错误时要调用的回调函数; 它使用参数status_code,body和headers调用。 如果出现错误,则status_code设置为-1。

Returns
nil

Example

http.post('http://httpbin.org/post',
  'Content-Type: application/json\r\n',
  '{"hello":"world"}',
  function(code, data)
    if (code < 0) then
      print("HTTP request failed")
    else
      print(code, data)
    end
  end)

HTTP协议简介【廖雪峰】
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832653051fd44e44e4f9e4ed08f3e5a5ab550358d000
四种常见的 POST 提交数据方式对应的content-type取值
https://www.cnblogs.com/wushifeng/p/6707248.html
json字符串的标准格式
https://www.cnblogs.com/zhanghengscnc/p/8585403.html

HTTP之URL
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息
以下面这个URL为例,介绍下普通URL的各部分组成:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
(原文:http://blog.csdn.net/ergouge/article/details/8185219 )

【摘自–json字符串的标准格式】
1.JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
2.json标准:

// An highlighted block
{
     
    "employees": [
        {
     
            "firstName": "Bill",
            "lastName": "Gates"
        },
        {
     
            "firstName": "George",
            "lastName": "Bush"
        },
        {
     
            "firstName": "Thomas",
            "lastName": "Carter"
        }
    ]
}

注意:

json串,在js中会解析成对象。其中对象的名称比如:
employees、firstName,必须用"“或者’'引起来才行。后面的value,如果是int和bool(js是不区分的哦),可以不用”"或者’'引起来,其他的字符串必须引起来,尤其是记得把时间日期引起来!

总结如下:

1 里面的是一个对象,如果是多个对象,则用逗号间隔,即{},{},这样就组成了一个对象序列,为了辨别开始和结束,则需要加上[]才能进行传递,则实际传递的形式应该是[{},{}],如果只要传递一个对象,则{}的形式就可以了。
2 接下来就是对象属性的表现方式了,属性必须在""
里面,属性与值之间用:隔开,属性之间用,来分隔,如果属性的值为数组,则用[]包括起来,
3 这样实际传递的数据格式可能有:
-------1、{“属性1”:值1,“属性2”:值2},如果值为字符串,则也需要用""括起来(下同)。
-------2、{“属性1”:值1,“属性2”:[值1,值2]},其中属性2是一个数组,包含了值1和值2。
-------3、{“属性1”:值1,“属性2”:{“属性a”:值a,“属性b”:[值b,值c]}},这个比较复杂了,属性2是个对象,这个对象由包含属性a和属性b,属性b又是一个数组包含值b和值c。

你可能感兴趣的:(物联网,esp8266,http)