为什么我的 LWP::UserAgent 凭据不起作用?

2023-11-23

我正在尝试访问受保护的文件。服务器正在使用摘要身份验证 - 我可以从打印输出的响应中看到这一点。 这是示例代码:

use LWP;
use strict;

my $url = 'http://somesite.com/aa/bb/cc.html';
my $username = 'scott';
my $password = 'tiger';

my $browser = LWP::UserAgent->new('Mozilla');
$browser->credentials("http://somesite.com:80","realm-name",$username=>$password);
my $response=$browser->get($url);

print $response->content;

当我尝试从浏览器访问该资源时,我从弹出窗口中获得的领域名称。相同的用户名和密码在浏览器中运行得非常好,我可以看到内容,但是当我运行上面的脚本时,它总是说401 Authorization required.

LWP 是如何工作的?

我是否需要要求 LWP 发送用户名和密码的 MD5 哈希(摘要),还是像内部一样检查要使用的身份验证并发送相应的(基本/摘要)发送凭据的方式。 我的问题是

  1. 如何设置 LWP 以便它发送用户名和密码的摘要?
  2. 如果服务器使用 Windows NTLM 身份验证协议怎么办?遇到这样的情况我该怎么办呢?

非常感谢任何快速帮助!


考虑以下摘录LWP::UserAgent模块的文档:

$ua->credentials( $netloc, $realm )
$ua->credentials( $netloc, $realm, $uname, $pass )

获取/设置用于领域的用户名和密码。

The $netloc是一个以下形式的字符串"<host>:<port>"。用户名和密码只会传递到该服务器。例子:

$ua->credentials("www.example.com:80", "Some Realm", "foo", "secret");

Change

$browser->credentials("http://somesite.com:80","realm-name",$username=>$password);

to

$browser->credentials("somesite.com:80","realm-name",$username=>$password);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 LWP::UserAgent 凭据不起作用? 的相关文章

随机推荐

  • ng-重复完成事件

    我想调用一些针对 div 和 table 的 jQuery 函数 该表填充有ng repeat 当我打电话时 document ready 我没有结果 Also scope on viewContentLoaded myFunc 没有帮助
  • 使用 ssl 模块的 HTTPS 代理隧道

    我想手动 使用socket and ssl模块 制作一个HTTPS通过本身使用的代理请求HTTPS 我可以执行初始操作CONNECT交换就好 import ssl socket PROXY ADDR proxy addr 443 CONNE
  • XSLT:将分组 html 元素移动到节级别

    我正在尝试编写一个 XSLT 根据标头级别将 HTML 文件组织为不同的部分级别 这是我的输入 h1 HEADER 1 CONTENT h1 p Level 1 para p p Level 1 para p p Level 1 para
  • 为什么我的随机数总是相同?

    我正在使用random numberFortran 的子例程 但在程序的不同运行中 生成的数字不会改变 我应该在代码中包含什么 以便每次编译和运行程序时数字都会发生变化 随机数生成器产生伪随机数 要每次运行获得不同的数字 您需要初始化随机种
  • 将 WPF 绑定错误转换为运行时异常。不适用于已发布的已发布应用程序

    我想将数据绑定错误记录到文件中 我使用了这个接受的答案中提出的解决方案 如何将绑定错误转化为运行时异常 我也尝试过这个 http msdn microsoft com en us library system diagnostics pre
  • javax.crypto 在不同版本的 Android 操作系统中工作方式不同吗?

    我使用此代码片段来加密 解密应用程序数据库中的数据 http www androidsnippets com encryptdecrypt strings 看来 javax crypto KeyGenerator generateKey 操
  • 在 JIRA REST API 中启用 CORS

    我在 Confluence 用户宏中从 JavaScript 调用 JIRA REST API 并且面临 CORS 问题 因为 JIRA 和 Confluence 位于两个不同的域中 并且飞行前请求从浏览器失败 我已经尝试了如下所述的几种
  • 多次构造的 Eager ApplicationScoped 托管 bean

    我有一堆eager ApplicationScoped托管豆 其中一些是通过注射到其他体内的ManagedProperty注解 形成依赖树 每个依赖 bean 在构建后都会操纵其父代 然而 似乎每次注入都会创建一个新实例 从而撤销之前的操作
  • WPF:如何使自定义模式对话框闪烁?

    通常 当您打开模态对话框并尝试单击其父窗口时 模态对话框的标题栏会闪烁 在 WPF 中创建自定义 无边框 无边框窗口时 您将失去所有功能 必须自行重建 我左顾右盼 终生不知道如何让我的模态窗口闪烁 虽然还是发出嘟嘟的声音 我想我将不得不监视
  • shared_ptr 别名构造函数

    关于关注的问题shared ptr构造函数 template lt class Y gt shared ptr const shared ptr
  • Xcode“-[UIViewController _loadViewFromNibNamed:bundle:] 加载了笔尖,但未设置视图出口。”错误

    我正在使用 Xcode 4 当我运行我的应用程序时 第一个屏幕无法加载 它在模拟器和设备上失败 我已经搜索了答案 他们都说要确保我已将文件所有者中的圆圈拖动到正确的视图 抱歉 我不记得这些东西的名称了 我是 Xcode 新手 我已将圆圈拖动
  • 将参数从 vbscript 传递到批处理文件

    您好 我在通过 vbscript 将参数传递到批处理文件时遇到问题 我不太擅长编程 所以我确信我只是错过了一些愚蠢的东西 无论如何 我正在使用 vbscript 来无形地运行批处理文件 vb脚本被称为 C Program Files x86
  • 播放 Soundcloud 嵌入时暂停 Youtube 嵌入

    我有一个音乐博客 其中包含各种嵌入式 soundcloud 和 youtube 播放器 我想要做的是防止任何音频同时播放 换句话说 当我正在播放 YouTube 视频时 如果我单击播放嵌入的 soundcloud 我希望 YouTube 播
  • 如何使用 gcc 获取带有行号信息的 C++ 堆栈跟踪? [复制]

    这个问题在这里已经有答案了 我们使用专有的堆栈跟踪assert就像捕获开发人员错误的宏一样 当捕获错误时 会打印堆栈跟踪 我找到了 gcc 的对backtrace backtrace symbols 方法不足 名字被破坏了 无线路信息 第一
  • 如何在Linux中更改echo的输出颜色

    我正在尝试使用 echo 命令在终端中打印文本 我想以红色打印文本 我怎样才能做到这一点 你可以使用这些ANSI 转义码 Black 0 30 Dark Gray 1 30 Red 0 31 Light Red 1 31 Green 0 3
  • 显示错误:尝试在空对象引用上调用接口方法“int java.util.List.size()”

    我正在创建一个在列表视图中显示联系人列表的应用程序 问题是当我运行我的应用程序时出现以下错误 并且我正在努力修复它 04 05 13 41 48 868 2488 2488 E AndroidRuntime FATAL EXCEPTION
  • 使用Python和pyserial访问USB串口

    如何使用 pyserial 访问 USB 端口 我见过一个example with import serial ser serial Serial dev ttyUSB0 我曾经使用适当的语法从 Windows 上的 MATLAB 访问串行
  • C 中的 snprintf 与 strcpy (等)

    为了进行字符串连接 我一直在做基本的strcpy strncpychar 缓冲区 然后我了解到snprintf和朋友 我应该坚持我的strcpy strcpy 0终止 或者我应该使用snprintf将来 正如其他人已经指出的那样 不要使用
  • Android Realm - 使用 Intent 传递 Realm 对象

    我想将领域对象从一个活动传递到另一个活动 例如 Intent intent new Intent MainActivity this Second class intent putExtra Student studentObj stude
  • 为什么我的 LWP::UserAgent 凭据不起作用?

    我正在尝试访问受保护的文件 服务器正在使用摘要身份验证 我可以从打印输出的响应中看到这一点 这是示例代码 use LWP use strict my url http somesite com aa bb cc html my userna