我编写了一个CGI程序,并将HTTP标头的状态错误发送给客户端.但是当我尝试使用mod_perl时,它只响应200 ok状态.如何发送自定义状态代码?
这是我想要回复自定义状态错误时的代码:
my $cgi = new CGI;
print $cgi->header(-type=>"text/html", -charset=>'utf-8', -status=>599);
Run Code Online (Sandbox Code Playgroud)
编辑:
这是代码:
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use SessionManagement;
my $cgi = new CGI;
my $method = $cgi->param("method");
my $sessionManagement = new SessionManagement(cgi=>$cgi);
if($sessionManagement){
if (defined($method)) {
if($method eq "authentication") {
loginMethod($cgi,$sessionManagement);
} elsif ($method eq "someMethod"){
someMethod($cgi);
} else{
print $cgi->header(-type=>"text/xml", -charset=>'utf-8');
print "<html>method does not exist</html>";
}
} else {
print $cgi->header(-type=>"text/html", -charset=>'utf-8' , -status=>599);
print "<html>blah blah</html>"; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个需要连接到SMTP服务器才能发送邮件的Perl脚本,但我真的不喜欢这样的东西:
my $pass = '123456';
Run Code Online (Sandbox Code Playgroud)
我找到了Data :: Encrypted,它应该允许用户第一次提示它然后加密存储它.
use Data::Encrypted file => ".passwd", qw(encrypted);
my $password = encrypted('password');
Run Code Online (Sandbox Code Playgroud)
但我无法使它工作,它会导致运行时错误:
/Library/Perl/5.12/Data/Encrypted.pm第78行的密钥文件格式错误
有人有同样的问题,或者知道隐藏/保护密码的其他方法吗?
我需要写聊天。但是我有一个问题,我无法触发MessageMapping controller。应用包含两部分,前端在4200端口上运行,后端在8080端口上运行。我已经设置了所有配置,但@MessageMapping controller没有被触发。后端控制台什么也没说。但是浏览器控制台说,该消息已发送。您能帮我解决问题吗?这是hava配置。
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat").setAllowedOrigins("*").withSockJS();
}
Run Code Online (Sandbox Code Playgroud)
这是控制器
@Controller
public class MessageController {
@MessageMapping("/chat")
@SendTo("/topic/message")
public void sendMessage(Message message) {
System.out.println("test");
}
Run Code Online (Sandbox Code Playgroud)
和写在angular的前端部分:
(function (angular, SockJS, Stomp, _, undefined) {
"use strict";
angular.module("app").
factory("chatService", chatService);
chatService.$inject = ["$q", "$timeout"];
function chatService ($q, $timeout) {
var service = {}, listener = $q.defer(), socket = {
client: null,
stomp: null
}, …Run Code Online (Sandbox Code Playgroud) 我是一家广播公司的网络开发人员。自 IOS 11 发布以来,我们收到了一些用户投诉,称我们的音频直播流无法再在 IOS 11 设备上播放。为了在我们的网站中嵌入流,我们使用 HTML5 AudioElement。在装有 IOS 11 的 iPhone 上调试 javascript 时,我们认识到调用音频元素 play() 方法会导致错误代码 4 (MEDIA_ERR_SRC_NOT_SUPPORTED) 的 MediaError。所有其他设备(Android、Windows 和 IOS 10 及以下)都可以毫无问题地播放流。我创建了一个小代码笔示例
<audio controls>
<source src="http://hr-hrinfo-
live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3"
type="audio/mpeg;codecs="mp3"">
Your browser does not support the audio element.
</audio>
Run Code Online (Sandbox Code Playgroud)
https://codepen.io/ampersand83/pen/pWwgKm在其中我只是通过 AudioTag 创建一个 AudioElement 并将源标签传递给我们的流 URL 之一。
运行 IOS 10 及以下版本的设备以及当前的 android 或 windows 设备都可以毫无问题地播放流。但是,运行 IOS 11.0.1 的设备无法播放流。我找不到任何关于为什么这不再可能的信息。有没有人知道为什么我们的流将不再工作,并且可以就我们可以做些什么来使它们再次工作提供建议?
我有一个 Perl 脚本,它正在执行mod_perl并作为HTTP server.myServer.pl使用一个module.pm. 当我与一位用户一起使用时,一切看起来都很好。但是当我把它置于数百名用户的压力之下时,它给了我这个奇怪的错误。
[错误] 尝试重新加载 MyModule.pm 已中止。\n在 /var/www/mod_perl/myServer.pl 行 36 处编译失败。\nBEGIN 失败--编译在 /var/www/mod_perl/myServer.pl 行 36 处中止.
这是myServer.pl代码开头的示例:
#!/usr/bin/perl -w
use strict;
use CGI;
#other use
use lib "/var/www/lib/receipt/pos";
use lib "/var/www/lib/common";
use MyModule;
my $q = new CGI;
my $myM = new MyModule(requestParams=>$q);
if($myM){
my $requestId = $myM->requestId;
#do sth
}else{
#do sth
}
#other codes
Run Code Online (Sandbox Code Playgroud)
这是一个代码 MyModule.pm
这不是全部,因为我不能全部发布。所以我编辑了它:
package MyModule;
use strict;
use CGI; …Run Code Online (Sandbox Code Playgroud) perl ×3
encryption ×1
html ×1
html5-audio ×1
ios11 ×1
java ×1
javascript ×1
mod-perl ×1
mod-perl2 ×1
passwords ×1
stomp ×1
websocket ×1