这里我们分别叙述了如何在浏览器直接使用此接口,以及通过java和python如何使用此接口。

一、以浏览器为例

(一)提交一个指令

serverURL=http://120.79.247.23/f12Browser/http?cmd=requestACommand           #指令提交地址

username=test                                            #测试专用用户名

password=123456                                      #测试专用密码

targetURL=http://www.baidu.com               #你的目标url,这个可以修改为你指定的url

commandVersion=local_and_server          #固定值

commandAction=none                               #固定值

1 请求链接=serverURL+username+password+targetURL+commandVersion+commandAction

如“http://120.79.247.23/f12Browser/http?cmd=requestACommand&username=test&password=123456&targetURL=http://www.baidu.com&commandVersion=local_and_server&commandAction=none”

2 将上述链接复制并黏贴至浏览器运行,会得到下面的字符串,表明指令提交成功。其中commandID为系统分配给你的唯一标识,后续操作需要通过该ID实现。

<status>success</status><commandID>19</commandID>

若status不为success,则返回格式为

<status>error</status><msg>异常信息</msg>

(二) 查询执行情况

serverURL=http://120.79.247.23/f12Browser/http?cmd=quaryACommand           #指令查询地址

username=test                                            #测试专用用户名

password=123456                                      #测试专用密码

commandID=19                                          #指令唯一标识

1 请求链接=serverURL+username+password+commandID

如“http://120.79.247.23/f12Browser/http?cmd=quaryACommand&username=test&password=123456&commandID=19”

2 将上述链接复制到浏览器执行,会得到下面的字符串。其中commandStatus表明了当前指令的执行情况,finished表明该指令已执行完成,可以向服务器请求执行结果

<status>success</status>
<commandID>19</commandID>
<commandVersion>local_and_server</commandVersion>
<targetURL>http://www.baidu.com</targetURL>
<commandAction>none<commandAction/>
<commandStatus>finished</commandStatus>
<createrID>1</createrID>
<createTime>2018-06-11 14:25:10.0</createTime>
<updateTime>2018-06-11 14:25:25.0</updateTime>

3 若指令还未开始还行,则commandStatus=create,未执行完成,则commandStatus=assigned

4 若查询过程中出现异常,返回格式为:

<status>error</status><msg>异常信息</msg>

(三)获取执行结果

在浏览器中有两种方式获取结果,一是通过接口请求结果,另一种是可以直接下载结果文件。

1 通过接口请求结果

http://120.79.247.23/f12Browser/http?cmd=getAFileContent&username=test&password=123456&commandID=19

正确的结果形式:

<status>success</status><fileContent>URL对应的HTML源码</fileContent>

若发生异常:

<status>error</status><msg>异常信息</msg>

2 直接下载结果文件

http://120.79.247.23/f12Browser/http?cmd=downloadAFile&username=test&password=123456&commandID=19

 二、以java为例

这里需要用到webdriver3.7的环境

https://share.weiyun.com/5DCfA1a

(一)提交一个指令

public static void main(String[] args) {
try{
//1 提交指令
String requestCommandURL = "http://120.79.247.23/f12Browser/http?cmd=requestACommand";
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost=new HttpPost(requestCommandURL);
List<BasicNameValuePair> params=new ArrayList<BasicNameValuePair>();
params.add(new BasicNameValuePair("username", "test"));
params.add(new BasicNameValuePair("password", "123456"));
params.add(new BasicNameValuePair("targetURL", "http://www.baidu.com"));
params.add(new BasicNameValuePair("commandVersion", "local_and_server"));
params.add(new BasicNameValuePair("commandAction", "none"));
httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response = client.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity==null){
System.out.println("error entity==null");
client.close();
return;
}
String results = EntityUtils.toString(entity, "UTF-8");
System.out.println("results="+results);
client.close();
return;
}catch(Exception e){
e.printStackTrace();
return;
}
}

正确执行的话应该能得到如下结果:

<status>success</status><commandID>19</commandID>

若status不为success,则返回格式为

<status>error</status><msg>异常信息</msg>

(二)查询执行情况

public static void main(String[] args) {
try{
//2 查询指令执行状态
String requestCommandURL = "http://120.79.247.23/f12Browser/http?cmd=quaryACommand";
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost=new HttpPost(requestCommandURL);
List<BasicNameValuePair> params=new ArrayList<BasicNameValuePair>();
params.add(new BasicNameValuePair("username", "test"));
params.add(new BasicNameValuePair("password", "123456"));
params.add(new BasicNameValuePair("commandID", "19"));
httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response = client.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity==null){
System.out.println("error entity==null");
client.close();
return;
}
String results = EntityUtils.toString(entity, "UTF-8");
System.out.println("results="+results);
client.close();
return;
}catch(Exception e){
e.printStackTrace();
return;
}
//3 获取执行结果
}

正确执行的话应该能得到如下结果:

<status>success</status>
<commandID>19</commandID>
<commandVersion>local_and_server</commandVersion>
<targetURL>http://www.baidu.com</targetURL>
<commandAction>none<commandAction/>
<commandStatus>finished</commandStatus>
<createrID>1</createrID>
<createTime>2018-06-11 14:25:10.0</createTime>
<updateTime>2018-06-11 14:25:25.0</updateTime>

若指令还未开始还行,则commandStatus=create,未执行完成,则commandStatus=assigned

若查询过程中出现异常,返回格式为:

<status>error</status><msg>异常信息</msg>

(三)获取执行结果

public static void main(String[] args) {
try{
//3 获取执行结果
String requestCommandURL = "http://120.79.247.23/f12Browser/http?cmd=getAFileContent";
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost=new HttpPost(requestCommandURL);
List<BasicNameValuePair> params=new ArrayList<BasicNameValuePair>();
params.add(new BasicNameValuePair("username", "test"));
params.add(new BasicNameValuePair("password", "123456"));
params.add(new BasicNameValuePair("commandID", "19"));
httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response = client.execute(httpPost);
HttpEntity entity = response.getEntity();
if(entity==null){
System.out.println("error entity==null");
client.close();
return;
}
String results = EntityUtils.toString(entity, "UTF-8");
System.out.println("results="+results);
client.close();
return;
}catch(Exception e){
e.printStackTrace();
return;
}
}

正确的结果形式:

<status>success</status><fileContent>URL对应的HTML源码</fileContent>

若发生异常:

<status>error</status><msg>异常信息</msg>

三、以python为例

(一)提交一个指令

#!/usr/bin/python
import urllib.request
import urllib.parse post_data = urllib.parse.urlencode({
'cmd':'requestACommand',
'targetURL':'http://www.baidu.com',
'username':'test',
'password':'',
'commandVersion':'local_and_server',
'commandAction':'none'
}).encode('utf-8')
requrl = "http://120.79.247.23/f12Browser/http"
req = urllib.request.Request(url = requrl, data = post_data)
print(urllib.request.urlopen(req).read().decode('utf-8'))

正确执行的话应该能得到如下结果:

<status>success</status><commandID>19</commandID>

若status不为success,则返回格式为

<status>error</status><msg>异常信息</msg>

(二)查询执行情况

#!/usr/bin/python
import urllib.request
import urllib.parse post_data = urllib.parse.urlencode({
'cmd':'quaryACommand',
'username':'test',
'password':'',
'commandID':''
}).encode('utf-8')
requrl = "http://120.79.247.23/f12Browser/http"
req = urllib.request.Request(url = requrl, data = post_data)
print(urllib.request.urlopen(req).read().decode('utf-8'))

正确执行的话应该能得到如下结果:

<status>success</status>
<commandID>19</commandID>
<commandVersion>local_and_server</commandVersion>
<targetURL>http://www.baidu.com</targetURL>
<commandAction>none<commandAction/>
<commandStatus>finished</commandStatus>
<createrID>1</createrID>
<createTime>2018-06-11 14:25:10.0</createTime>
<updateTime>2018-06-11 14:25:25.0</updateTime>

若指令还未开始还行,则commandStatus=create,未执行完成,则commandStatus=assigned

若查询过程中出现异常,返回格式为:

<status>error</status><msg>异常信息</msg>

(三)获取执行结果

#!/usr/bin/python
import urllib.request
import urllib.parse post_data = urllib.parse.urlencode({
'cmd':'getAFileContent',
'username':'test',
'password':'',
'commandID':''
}).encode('utf-8')
requrl = "http://120.79.247.23/f12Browser/http"
req = urllib.request.Request(url = requrl, data = post_data)
print(urllib.request.urlopen(req).read().decode('utf-8'))

正确的结果形式:

<status>success</status><fileContent>URL对应的HTML源码</fileContent>

若发生异常:

<status>error</status><msg>异常信息</msg>

如何通过http接口使用f12b实现批量提交链接的更多相关文章

  1. js 批量提交数据

    // 批量提交数据 let pageSize = 100, total = dataTmp.length, list = dataTmp let totalPage = Math.ceil(total ...

  2. MyBatis 通过 BATCH 批量提交

    本文由 简悦 SimpRead 转码, 原文地址 https://www.jb51.net/article/153382.htm 很多人在用 MyBatis 或者 通用 Mapper 时,经常会问有没 ...

  3. php中bindValue的批量提交sql语句

    php预编译sql语句,可以批量提交sql,也可以实现防注入 <?php $dsn='mysql:host=127.0.0.1;port=3306;dbname=bisai'; $usernam ...

  4. git批量删除文件和批量提交

    1. 单个删除文件: ① 通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:(可选操作,可直接执行②删除) $ rm test.txt ② 确实要从版本库中删除该文件,那就用命令git rm ...

  5. Asp.Net Mvc表单提交(批量提交)

    Asp.Net Mvc中Action的参数可以自动接收和反序列化form表单的值, 采用form表单提交 name=value类型,只要Action参数的变量名和input的name相同就行 html ...

  6. SQL批量提交修改业务

    把你需要批量提交修改的东西在内存中修改完毕 然后执行以下代码 SqlConnection conn = new SqlConnection(ConnectionString);SqlDataAdapt ...

  7. Ext.Ajax.request批量提交表单

    介绍一下批量提交grid中数据的问题 js文件中的提交方法如下: listeners: { click: function btnClick(button) { var win = button.up ...

  8. TopJUI通过简单的代码实现复杂的批量提交功能

    业务系统的批量提交是常用的操作功能,使用传统的EasyUI开发时需要写不少代码才能实现,该功能在TopJUI中是如何实现的呢?本篇我们将通过简单的代码,把批量操作的具体实现分享给大家参考. <a ...

  9. 【INSERT】逐行提交、批量提交及极限提速方法

    在Oracle数据库中,不是提交越频繁越好.恰恰相反,批量提交可以得到更好的性能.这篇文章给大家简单展示一下在Oracle数据库中逐行提交于批量提交两者之间的性能差别.最后再给出一种可以极大改变性能的 ...

随机推荐

  1. 视频输出hdtv和sdtv

    SDTV和HDTV人们分别把它们叫标准清晰度数字电视和高清晰度数字电视,SDTV电视节目很早在欧洲就开始广播,如,DVB-S(卫星数字视频广播).DVB-C(有线数字视频广播).DVB-T(地面数字视 ...

  2. makefile编写---.a静态库的生成和调用

    #.SUFFIXES: .c .o Cc =gcc #OSA=/data/users/osa IncDir=-I. -I./ Debug = -g Cflags = -c $(DEBUG) Libs ...

  3. Prime pair connection (Project Euler 134)

    题目大意: 对于连续的质数$p1$, $p2$, 满足$5 <= p1 <= 1000000$ 求出最小的整数$S$, 它以 $p1$结尾并且能够被$p2$整除. 求$S$的和. 思路: ...

  4. ECharts:企业报表工具

    ECharts.纯Javascript图表库,基于Canvas,底层依赖ZRender.商业产品经常使用图表库,提供直观,生动.可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫 ...

  5. PHPthinking邀请您一起赚Money

    原文地址:http://bbs.phpthinking.com/thread-790-1-1.html 为了让大家工作或者学习之余.可以赚些money,PHPthinking为大家推荐一个赚钱的站点! ...

  6. unison+inotify 同步web代码并排除指定目录不同步

    unison + inotify  实现web 数据双向同步   unison 是一款跨平台的文件同步对象,不仅支撑本地对本地同步,也支持通过SSH,RSH和Socket 等网络协议进行同步.unis ...

  7. Python学习笔记(三)windows下安装theano

    2016.6.28补充: 不论是实验室的电脑还是我的笔记本,只要是windows下,theano.test()都是不通过的.虽然能使用一些theano中的函数,但是我感觉很不好. 所以还是转Ubunt ...

  8. CSS ,浮动,clear记录,和一些转载别处

    DIV+CSS clear both清除产生浮动 我们知道有时使用了css float浮动会产生css浮动,这个时候就需要清理清除浮动,我们就用clear样式属性即可实现. clear 属性规定元素的 ...

  9. 关于User的一些注解

    @RequiresAuthentication 验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时. @RequiresUser 验证用户是否被记忆,us ...

  10. 【转】《JAVA与模式》之责任链模式

    <JAVA与模式>之责任链模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模 ...