我正在使用 SOA 客户端 Firefox 插件向一些 ONVIF 摄像机发送 SOAP 请求。您将在下面看到“GetServices”请求。它对于一台相机工作正常,但对于另一台(AXIS 相机)我收到错误:“无效的 SOAP 消息或 SOAP 版本不匹配”。
对此还有其他疑问。但我没有一个答案是清楚的。其中一位提到更改为肥皂版本 1.2(我该怎么做?)。这个问题似乎可以通过一个简短的评论来解决:Onvif - 无效的 SOAP 消息或 SOAP 版本不匹配 如果有人认为它与我的案例相关,请您详细说明一下。
URL = http://10.253.253.2/onvif/device_service
Method = POST
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:ns0="http://www.onvif.org/ver10/device/wsdl"
xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">sLOOZG8o+369zaBclGwn4+tjOac=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NWQyMzVjNGNhYmIxMTQ1ZjEzZWVlYzcyZDkzZjcwODI=</wsse:Nonce>
<wsu:Created>2015-07-27T15:47:31.178534Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<ns1:Body>
<ns0:GetServices>
<ns0:IncludeCapability>false</ns0:IncludeCapability>
</ns0:GetServices>
</ns1:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
以及错误响应...
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsrfr="http://docs.oasis-open.org/wsrf/r-2" xmlns:aa="http://www.axis.com/vapix/ws/action1" …Run Code Online (Sandbox Code Playgroud) 我一直致力于一个项目,我一直在以交互方式开发MySQL命令.我现在想要使用PHP脚本运行MySQL命令.我通过简单地粘贴MySQL命令并将它们变成PHP字符串来实现这一点.像这样...
$queryStg = "
update table1 set col1 = 1;
drop table table2;
";
$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);
Run Code Online (Sandbox Code Playgroud)
但是我总是不得不删除MySQL注释以使其工作.我宁愿保留这些评论.有没有办法做到这一点?.我已经尝试在每条评论的末尾添加'\n',但我无法让它发挥作用.例如,如果我运行它会返回错误...
$queryStg = "
-- a mySQL comment
update table1 set col1 = 1;
--another comment
drop table table2;
";
$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);
Run Code Online (Sandbox Code Playgroud)
完整的代码使其有用
$mysqliLink = new mysqli ($host, $username, $password, $dbName);
$queryStg = "
-- a mySQL comment
update table1 set col1 = 1;
--another comment
drop table table2;
";
$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);
do {
if ( mysqli_error($mysqliLink) ) …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Drupal模块.有人能告诉我'@'符号是什么吗?我不记得在PHP中遇到它.(据我所知,它很难搜索它,你不能谷歌的符号).我可以将它转换为普通的PHP变量,修改它并最终将它放回到.module文件的PHP中的@ thing中吗?
更新:例如:
$error['msg'] = t("We're sorry. We have now only @qty of the ....
Run Code Online (Sandbox Code Playgroud)
在一个教程中,我遇到了这个jQuery:
var encodedName = $('<div />').text(name).html();
Run Code Online (Sandbox Code Playgroud)
我'<div />'之前没见过.看起来不像是CSS选择器.有任何想法吗?
在threading.timer你传递一个函数的名称(下面的例子)。是否可以用函数体替换它,这样我就不必费心定义另一个琐碎的函数了
def PulseLed(self):
GPIO.output(26, GPIO.HIGH)
self.ledTimer = threading.Timer(1, self.TurnOffLed)
self.ledTimer.start()
def TurnOffLed(self):
GPIO.output(26, GPIO.LOW)
Run Code Online (Sandbox Code Playgroud) 我有一个运行python的单元,需要使用ws-discovery来定位可能位于不同逻辑网络上的onvif摄像机。有人知道这是否可能吗?
(我在使用此库的相同逻辑网络上得到了发现:https : //github.com/hlamer/python-ws-discovery/blob/master/WSDiscovery.py)
经过一番搜索,我遇到了听起来很有希望的“远程发现代理”,但我无法弄清楚它们到底是什么。
我正在尝试为我的IOS应用程序创建一个临时分发.当我去:XCODE>菜单>产品>存档时,这已成功完成,但"导出"按钮被禁用,并显示以下消息:"Apple Developer Program中需要分发注册".
我一定错过了注册或设置的一个步骤.能帮助弄清楚我做错了什么.这就是我所拥有的......
我加入了Apple开发者计划.在Apple会员中心:
在证书下(https://developer.apple.com/account/ios/certificate)..
在标识符> APP ID下...
在设备下......
在供应配置文件下...
在XCode中......
菜单> xcode> Prefs> Apple ID>我的苹果开发者ID已列出,它包含..
在xcode中,当我选择了.xcodeproje文件时,在中间窗口中,我有......
当我选择iPad时按下"运行"按钮,应用程序可以在我的iPad上构建和启动而不会出现问题.但是,如果我选择:Team MyCompany名称,并尝试构建,我会收到"应用程序安装失败.无法验证应用程序".(所以我不使用这个帐户).
我必须承认我不明白为什么列出MyName和MyCompany名称以及它们之间的区别.我不明白xcode正在创建什么,如果我可能需要下载一些证书或xcode使用的东西.
我还使用cordova来创建应用程序.
object reference is required for the non-static field, method, or property
我在我的代码中遇到上述错误,我无法弄清楚为什么(有许多类似的问题,但我读过的所有内容似乎都与我有关).
class Program
{
static void Main(string[] args)
{
VenueMappings venueMappings = new VenueMappings();
var venue1 = new Venue
{
ExtEventNo = 1,
UsiVenue = "building1",
};
VenueMappings.venues[0] = venue1;
}
}
public struct Venue
{
public int ExtEventNo;
public String UsiVenue;
};
public class VenueMappings
{
public Venue[] venues = new Venue[2];
};
Run Code Online (Sandbox Code Playgroud) 我想将一个变量传递给一个在延迟后运行的函数.我已经看到了关于如何做到这一点的类似问题(见下文).我不认为这是我想要的,因为我每次method1被调用,附加的匿名函数的数量增长?我需要做的是删除任何现有的附加匿名函数,然后再添加新函数.但我不认为这是可能的.有没有办法在延迟后调用方法,但每次都传入一个新的变量值?
using System.Timers;
myTimer = new Timer();
myTimer.Interval = 3000;
myTimer.AutoReset = false;
public void method1(int var1){
myTimer.Elapsed += delegate { doSomething(var1); };
myTimer.Start();
}
public void doSomething(int arg1){...}
Run Code Online (Sandbox Code Playgroud)
UPDATE
基本上每当method1运行时,我想要在3秒后发生一些事情,我需要传递一个每次都可能变化的参数.
我不认为我可以使用字段来存储变量,因为method1可能在第一个计时器到期之前多次调用.即可能有几个qued up.例如,在某个时间点,'doSomething'等待发生的问题可能是......
doSomething(3)
doSomething(7)
doSomething(1)
Run Code Online (Sandbox Code Playgroud)
它仅用于测试平台,method1运行时间不超过50次.我想要确保的是每个doSomething(var1)只调用一次而不是每3秒调用一次.即doSomething每次调用时只有一个method1被调用.
这是一个Windows控制台应用程序.
我认为我不能正确理解静态构造因为我得到错误"方法必须有一个返回类型" DutLog,但它是一个静态构造函数,因此它不应该有一个返回类型?
static public class DutLog
{
static public String m_var1;
static Dutlog()
{
Console.WriteLine("DutLog() - constructor");
m_var1 = "hello";
}
}
Run Code Online (Sandbox Code Playgroud)