如何解决尝试使用 ActiveX 组件在 VB 中重新编写 Pearl LWP 代码
有人熟悉 Chilkat ActiveX HTTP component 或 Pearl LWP 吗?我正在尝试重现我们目前在 Pearl 中使用的一些代码。我要做的是登录互联网设备并读取日志文件。
登录需要 cookie。在普通的网络浏览器中,我可以只使用 http://test.com:3800/login.tgi?Username=BOB&Password=12345。然后,一旦登录 cookie 存储在浏览器中,我就可以导航到日志文件页面。
工作珍珠代码是
function members_only() {
$cookie_name = 'cookie_name';
$error_url = home_url($path = '/403-error/');
global $pageNow;
$array_cookie_value = json_decode( stripslashes($_COOKIE[$cookie_name]),true);
$woo_user_id = $array_cookie_value['user_id'];
$user_Meta = get_user_Meta($woo_user_id);
$user_order_status = $user_Meta['doris_shop_enabled'][0];
if ( is_admin() || is_front_page() || $pageNow == 'wp-login.PHP' || is_page('403-error') ) {
echo('Do nothing');
} elseif ( !isset($_COOKIE[$cookie_name]) || (isset($_COOKIE[$cookie_name]) && $user_order_status === 0) ) {
wp_safe_redirect( $error_url );
exit;
} else {
echo("Very limited.");
}
}
add_action( 'wp','members_only' );
我使用 ActiveX 组件在 VB 中快速完成了这些,但我什至没有成功登录。
$unique = array_map("unserialize",array_unique(array_map("serialize",$data)));
echo "<pre>";
print_r($unique);
echo "</pre>";
Auth 正在返回
my $Authenticate = "http://test.com:3800/login.tgi?Username=BOB&Password=12345";
my $Action = "http://test.com:3800/log”;
use strict qw/refs/;
use HTTP::Cookies;
use LWP::UserAgent;
use HTTP::Request::Common qw/POST GET/;
my $browser = LWP::UserAgent->new(
cookie_jar => HTTP::Cookies->new,requests_redirectable => [],timeout => 10,pragma => "no-cache",max-age => 0,agent => "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
);
my $Page = $browser->request(GET $Authenticate);
if ($Page->is_success) { my $Page = $browser->request(GET $Action); }
else { print $ErrorPage; die; }
如果我用另一个 URL 代替登录 URL,或者省略登录凭据(所以它只是)http://test.com:3800 Auth 为我提供了该网页的正确 HTML。
谁能看到 2 个代码片段之间的任何不同之处,或者想出我可能遇到此问题的原因?
解决方法
我找到了 this 并且效果很好
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。