HTTP查询

为了提供此示例,首先解释所有关于HTTP的基础知识。这很重要,以便理解接口的工作原理。

基础知识

以下几点必须特别注意:

  • 通过HTTP进行请求时,客户端会建立连接,直到服务器断开连接。
  • 查询通过TCP在端口80(HTTP未加密)和端口443(HTTPS加密)上进行。
  • 使用http://端口80或https://端口443时,端口会被隐藏。
  • 从HTTP/1.1开始,连接层的设计使得连接可以保持一段时间开放,以避免TCP握手。这在Antcas监视器中看不到。但是,在超时后,客户端(即Antcas服务器)会关闭连接。因此,超时时间应该设置得足够高。
  • 每个查询都是完全向后兼容的。无论服务器支持HTTP/1.0、HTTP/1.1还是HTTP/2都无所谓。
  • 头部是不区分大小写的。这意味着大小写不重要。但是,有些制造商没有注意到这一点来实现它。
  • Antcas Control中的字符编码始终是UTF-8。如果使用其他编码,则可能需要转换它们。
  • URL(包括查询)的最大长度为2'083个字符。

URL的结构如下:

http://server.tld/getdata?project=you%26i+project&id=25#anker
组件 含义
http:// 定义协议。Antcas Control目前支持http和https。
server.tld 定义目标服务器的域名(DNS)或IP地址。
getdata 是服务器的URI。它对应于目标页面,类似于路径。
?[...] 问号将URL与所谓的GET请求分开,后面跟着所有表单数据也称为查询。查询总是被编码以替换不支持的字符。
#[...] #号定义页面上的锚点。这样可以跳转到任意位置(滚动)。这些数据不会传输给服务器。此外,此区域包括#不能复制到查询中,否则会调用服务器上的其他目标页面。

目标服务器的配置在相应的HTTP网关中进行。

构建一个查询

查询的构建由头部和主体组成。头部在第一行始终显示使用的方法、URI和协议。

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

然后是服务器的响应。它包含查询的状态代码。主体在头部后面跟着一个空行。

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>Hallo Welt</html>

状态代码

状态代码被分为组。组由第一个数字定义。此外,在数字后面是明确的含义。以下是一些示例:

状态 描述
200 OK 请求成功。
301 Found 重定向到实际页面。由于Antcas Control会跟随链接,此响应通常被隐藏。
404 Not Found 未找到指定的页面。
500 Internal Server Error 发生了服务器错误。

方法

GET和POST方法使用最频繁。

方法 描述
GET GET查询是标准查询。它不支持内容。
POST POST查询将内容发送到服务器。内容可以为空。优点在于内容没有长度限制。在GET请求中,只能传输一定数量的数据。
PUT PUT被接口用来交换信息。
DELETE 与PUT一起用于删除数据。
(其他) 其他HTTP方法也被支持,但需要相应的配置。

身份验证

大多数身份验证在头部中进行。但是,也有请求在查询或内容中定义。

可能需要在实际查询之前创建一个会话。然后,会话被设置为头部Set-Cookie。然后必须再次传递此Cookie。Cookie的内容是区分大小写的,这意味着内容必须一对一地传递。以下是一个简化的示例:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

服务器响应:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

现在可以在下一个查询中再次使用Cookie:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

提示

在浏览器的开发者控制台中,可以在网络下评估和测试请求。此外,有时建议复制或查看头部。

配置

在Antcas Control中创建一个HTTP接口与一个网关。网关被配置为HTTP客户端。在此处输入目标地址和端口(所需)。然后,在结构中配置查询。为此,在通信下将URL作为变量输入。

简单查询

要创建一个简单的查询,请选择任意数据类型。此数据类型优先是字符串(string)。如果输出发生值更改,则会执行查询。然后,该值将直接用作查询。

复杂查询

使用功能块HTTP_REQUEST创建更复杂的查询。为此,必须将通信的数据类型设置为raw。然后可以使用功能块HTTP_RESPONSE评估响应。为了正确分配请求的响应,必须确保查询ID被链接。

示例

在此示例中,使用GET方法将数据发送到服务器并评估响应。完整URL如下:

http://server.tld/getdata?project=you%26i+project&id=25

为了能够从服务器获取或发送数据,使用以下示例:

注意:示例没有显示如何触发请求。它通过输入SET的正边沿触发。为了防止意外查询,应将输入DIS设置为TRUE。

接口配置如下: