Skip to content

请求规则

西红柿大芝麻 edited this page Jul 19, 2020 · 8 revisions

请求

由简到难,有GET,GBK编码的GET,带特殊headers的GET,POST表单,POST JSON 字符串。POST带编码带headers,等几种写法。

分节

GET和POST均分三小节,一共六小节,阐述分析过程和具体写法,提供八种形式,七种模板。

GET(一)

百度搜索为例。通过网络使用百度搜索,就是一个基本的GET请求。

搜索数字 1,链接为:

https://www.baidu.com/s?ie=UTF-8&wd=1

搜索数字 2,链接为:

https://www.baidu.com/s?ie=UTF-8&wd=2

观察并使用$keyword替换搜索关键词,得到:

(形式一) https://www.baidu.com/s?ie=UTF-8&wd=$keyword

这就是在规则编写url输入框里可以填入的第一种形式,该写法不提供模板,windows实机运行如图:

百度搜索1

GET(二)

爱奇文学为例。他的搜索是一个带gbk编码的GET请求。搜索汉字 玄幻,链接为:

http://www.iqiwx.com/modules/article/search.php?searchkey=%D0%FE%BB%C3&searchtype=articlename&page=1

可知玄幻的编码是%D0%FE%BB%C3,去掉百分号即D0FEBBC3,数字节得1汉字对于2字节,这是GBK编码特征,

使用$keyword替换搜索关键词,使用$page替换页码位置,指定编码"encoding":"gbk",使用JSON写法如下:

(形式二)

{
    "url": "http://www.iqiwx.com/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
    "encoding": "gbk"
}

这就是在规则编写url输入框里可以填入的第二种形式。模板如下,windows实机运行如图:

(get-gbk模板其一)

{
    "url": "/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
    "encoding": "gbk"
}

爱奇文学搜索

GET(三)

如果需要携带请求头信息,则加上headers,不举例,参考模板如下:

(形式三)

(get-headers模板其二)

{
    "url": "/modules/article/search.php?searchkey=$keyword&searchtype=articlename&page=$page",
    "headers":{
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.40"
    }
}

POST(一)

再以爱奇文学为例,它的搜索比较特别,既可以GET也可以POST。按顺序执行如下步骤:

  1. 打开现代浏览器(chrome、edge、firefox等)

  2. 键入地址http://www.iqiwx.com/,回车打开

  3. 按下F12打开开发者工具,切换至网络(或network)面板。

  4. 搜索玄幻,开发者工具网络栏点击第一个请求,查看详情,如图。

这是一个POST请求,body是一个表单,表单有2种写法,APP中写入的规则与模板如下:

爱奇文学搜索POST表单

(形式四)

{
    "url": "http://www.iqiwx.com/modules/article/search.php",
    "method": "POST",
    "body": "searchkey=$keyword&searchtype=articlename",
    "headers": {
        "Content-Type": "application/x-www-form-urlencoded"
    }
}

(形式五)

{
    "url": "http://www.iqiwx.com/modules/article/search.php",
    "method": "POST",
    "body": {
        "searchkey": "$keyword",
        "searchtype": "articlename"
    }
}

(post-form1模板其三)

{
    "url": "/modules/article/search.php",
    "method": "POST",
    "body": "searchkey=$keyword&searchtype=articlename",
    "headers": {
        "Content-Type": "application/x-www-form-urlencoded"
    }
}

(post-form2模板其四)

{
    "url": "/modules/article/search.php",
    "method": "POST",
    "body": {
        "searchkey": "$keyword",
        "searchtype": "articlename"
    }
}

POST(二)

POST包含表单和JSON,不举例,参考模板如下:

(形式六)

(post-json模板其五)

{
    "url": "/modules/article/search.php",
    "method": "POST",
    "body": "{\"searchkey\": \"$keyword\",\"searchtype\": \"articlename\"}",
    "headers":{
        "Content-Type": "application/json"
    }
}

body转义过于麻烦,建议使用js自动格式化,注意keyword是一个变量,写法如下:

(形式七)

(post-json-by-js模板其六)

@js:
({
    "url": "/modules/article/search.php",
    "method": "POST",
    "body": JSON.stringify({
        "searchkey": keyword,
        "searchtype": "articlename"
    }),
    "headers":{
        "Content-Type": "application/json"
    }
})

POST(三)

可能需要带特殊请求头才可以获取正确响应,不举例,参考模板如下:

(形式八)

(post-headers模板其七)

{
    "url": "/modules/article/search.php",
    "method": "POST",
    "body": "searchkey=$keyword&searchtype=articlename",
    "headers": {
        "Content-Type": "application/x-www-form-urlencoded",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.40"
    }
}

注意

模板只是参考,要根据实际情况按需使用,所有写法都有js写法,不妨试试。