HTTP POST 操作出现错误代码 302

2024-06-19

我有一个 perl 脚本,它将数据发送到我用 php 编写的 Web 服务......

这是代码:

    use LWP::UserAgent;

    my $ua = LWP::UserAgent->new;

    my $server_endpoint = "http://example.com/";

    my $req = HTTP::Request->new(POST => $server_endpoint);
    $req->header('content-type' => 'application/json');
    $req->header('x-auth-token' => 'kfksj48sdfj4jd9d');

    # add POST data to HTTP request body
    my $post_data = '{ "name": "Dan", "address": "NY" }';
    $req->content($post_data);

    my $resp = $ua->request($req);
    if ($resp->is_success) {
         my $message = $resp->decoded_content;
        print "Received reply: $message\n";
    }
    else {
        print "HTTP POST error code: ", $resp->code, "\n";
        print "HTTP POST error message: ", $resp->message, "\n";
    }

当我发送请求时,我收到以下回复:

   HTTP POST error code: 302
   HTTP POST error message: Found

问题:

  • 我怎样才能摆脱这个错误,或者这甚至是一个错误,尽管它说 Found ?
  • 如何获取帖子的返回值?
  • 发布数据的正确方法是什么? (上面的代码是从这个网站复制的 http://xmodulo.com/how-to-send-http-get-or-post-request-in-perl.html。 我的 php 站点获取发布数据并回显或只是打印它作为返回。)

提前致谢 。


来自服务器的 302 错误是对客户端的重定向指令。如果您使用的是默认配置LWP::UserAgent,它将自动遵循重定向,最多七次。如果您没有得到成功的响应,则表明您已关闭重定向(从您发布的代码看来这不太可能,除非您省略了一些配置详细信息LWP::UserAgent),或者您陷入了重定向循环。

您可以通过检查重定向数据来检查HTTP::Response object:

my $resp = $ua->request($req);

# check for success, etc.
...

if ($resp->is_redirect) {
    # check the number of redirects that the script has made:
    say "n redirects: " . $resp->redirects;
}

使用默认的 LWP::UA 设置,在 LWP::UA 放弃之前您将获得的最大重定向数为 7。

有关重定向的更多详细信息,请致电$resp->redirects在数组上下文中:

# @redirects is an array of HTTP::Response objects
my @redirects = $resp->redirects;

# print out the 'location' header for each Response object to track the redirection:
say "Location: " . $_->header('location') for @redirects;

# or, for more comprehensive troubleshooting, print out the whole response:
say "Response: " . $_->as_string for @redirects;

向 google.com 请求的示例输出,该请求重定向一次:

# say "n redirects: " . $resp->redirects;
n redirects: 1

# say "Location: " . $_->header('location') for @redirects;
Location: http://www.google.co.uk/?gfe_rd=cr&ei=1bg3VJikJ_HH8gfOk4GwDw

# say "Response: " . $_->as_string for @redirects;
Response: HTTP/1.1 302 Found
Cache-Control: private
Connection: close
Date: Fri, 10 Oct 2014 10:45:41 GMT
Location: http://www.google.co.uk/?gfe_rd=cr&ei=1bg3VJikJ_HH8gfOk4GwDw
Server: GFE/2.0
Content-Length: 261
Content-Type: text/html; charset=UTF-8
Alternate-Protocol: 80:quic,p=0.01
Client-Date: Fri, 10 Oct 2014 10:45:39 GMT
Client-Peer: 74.125.230.102:80
Client-Response-Num: 1
Title: 302 Moved

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/?gfe_rd=cr&amp;ei=1bg3VJikJ_HH8gfOk4GwDw">here</A>.
</BODY></HTML>

我的猜测是您陷入了重定向循环,这就是为什么您没有从 PHP 脚本中获得预期响应的原因。

注意:启用say以及 Perl 5.10 及更高版本中的其他有用功能,将

use feature ':5.10';

之后在脚本的顶部use strict; use warnings;.

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

HTTP POST 操作出现错误代码 302 的相关文章

  • 根据插入顺序迭代哈希?

    不想对条目进行排序 使用它也不会保留顺序 foreach my val keys hash 默认情况下 Perl 5 中的哈希值是无序的 您可以使用tie http perldoc perl org functions tie html a
  • Perl 的 caller() 函数返回错误的行号

    我在 Perl 5 10 1 上运行了以下脚本 usr bin perl use strict use warnings foreach my x 0 x lt 1 x Line 5 print line Line 6 sub print
  • $.load 内的表单未正确发布

    这就是我得到的 基本上单击一个按钮并执行以下代码 Readthis MonsterRequest php id Mon TestVar TestVar replace s g Readthis Readthis htmlencode Tes
  • HTTP POST 操作出现错误代码 302

    我有一个 perl 脚本 它将数据发送到我用 php 编写的 Web 服务 这是代码 use LWP UserAgent my ua LWP UserAgent gt new my server endpoint http example
  • 在 Google 表格应用程序中进行身份验证

    我有一个类似批处理的应用程序 由调度程序定期调用 无需人类用户参与 它使用 PerlNet Google 电子表格 http metacpan org pod Net Google Spreadsheets包通过从数据库获取的数据来更新 G
  • Perl 三元条件运算符

    我正在尝试在脚本中编写更高效的代码 并且有时会实现三元条件运算符 我不明白为什么在循环中使用三元条件运算符时会得到额外的结果 usr bin perl use strict use warnings my array Serial 123
  • 在 Perl 中如何用空格填充字符串的一部分?

    你更喜欢哪个版本 usr bin env perl use warnings use strict use 5 010 my p 7 33 my prompt my key very important text my value Hell
  • 简单的 jQuery 帖子无法在 Internet Explorer 9 上运行(访问被拒绝)

    我使用 JQuery 和 PHP 编写了一个验证器 该验证器适用于除 Internet Explorer 9 之外的所有浏览器 我收到错误消息 SCRIPT5 访问被拒绝 jQuery 代码 contact send click funct
  • $.Post 不包含任何回复

    我有一个 php来自另一台处理数据的服务器的文件 该数据已制成表格 所以每当我使用调用此页面时 post如果参数正确 它的反应就不会是什么 我检查了我的代码 也许标题是对此负责的 我实际上想要的是返回我的表格数据 以便我可以将其填充到另一个
  • mod_rewrite 仅适用于 GET

    这是一个不太可能的事情 但我希望找到一个简单的解决方法来解决一个奇怪的错误 该错误仅在应用程序省略 推断查询字符串时才会出现 在深入研究一千行缩小的第三方 javascript 之前 我想了解是否可以使用 mod rewrite 自动应用查
  • 在 Perl 中 JSON 编码/解码 utf8 字符串

    我通过一个utf8 http perldoc perl org utf8 html从我的命令行将字符串编码到 Perl 程序中 gt test pl string et s try hi gs 这似乎正确识别了字符串 use utf8 Ge
  • 在 ActivePerl 上安装 Padre (IDE)?

    当我访问 Padre 的官方下载网站时 http padre perlide org download html http padre perlide org download html 我看到 Windows 中唯一的选项是下载 DWIM
  • Perl 标识符中允许使用哪些字符?

    我正在做正则表达式作业 其中一个问题是 使用在线语言参考手册确定 Java Python Perl 和 C 的整数常量和标识符的正则表达式 我不需要关于正则表达式的帮助 我只是不知道 Perl 中的标识符是什么样的 我找到了描述有效标识符的
  • React PHP 获取 POST 数据

    我试图在 ReactPHP Web 服务器上运行一个简单的 Web 应用程序 但我不知道从哪里获取来自 HTML 表单的 POST 数据 服务器定义为 include vendor autoload php register shutdow
  • 如何在 Perl 中获取用户输入而不等待输入?

    我正在尝试用 Perl 制作一个交互式 shell 脚本 我能找到的唯一用户输入如下 name
  • 如何在 Perl 中不阻塞地测试 STDIN?

    我正在编写我的第一个 Perl 应用程序 一个 AOL Instant Messenger 机器人 它与 Arduino 微控制器对话 后者控制一个伺服系统 按下我们系统管理员服务器上的电源按钮 该服务器每 28 小时左右就会随机冻结一次
  • perl 中的大写重音字符

    有没有办法在perl中大写重音字符 my string l phant print uc string 这样它实际上会打印 L PHANT 我的 perl 脚本以 ISO 8859 1 编码 string 以相同编码打印在 xml 文件中
  • 如何在 Perl 中生成数组的所有排列?

    生成所有内容的最佳 优雅 简单 高效 方式是什么 n perl 中数组的排列 例如 如果我有一个数组 arr 0 1 2 我想输出所有排列 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 它可能应该是一个返回迭代器的
  • 为什么没有调用回调?

    我有来自的示例脚本B OP检查 https metacpan org pod B OPCheck SYNOPSIS模块经过修改PL op name to padsv https github com Perl perl5 blob blea
  • Perl 中令人困惑的文件句柄

    一直在使用以下脚本 但仍然无法理解两种不同 类型 的文件句柄形式背后的含义 任何见解将不胜感激 usr bin perl use warnings use strict open FH example txt or die while

随机推荐

  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 带有 join 的 Groupby agg 不会产生预期的输出

    我有如下数据框 Wash Month Wash Day 0 3 2 1 4 3 预期输出是 d Wash Month Wash Month Wash Day Wash Day Wash Month Wash Day df T astype
  • 在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene?

    在 SKScene 上运行 SKTransition 是否会破坏原始 SKScene 例如 SKTransition reveal SKTransition revealWithDirection SKTransitionDirection
  • 如何在自托管 WCF 中获取多部分表单数据?

    我已经搜索了很长一段时间 但没有找到我要找的东西 我在 Windows 应用程序中自行托管了一个 http WCF 现在 在我的服务方法之一中 我需要接收一个文件和一些表单数据字段 在类似的问题中 情况要么发送一个文件 这是通过流数据然后转
  • ES6模块导入是否执行导入文件内的代码?

    js 文件中的代码在导入期间是否运行 如果是 那么一次还是每次 例如 a js console log A const a a export default a b js import a from a gt console logs c
  • 获取自动热键中的可用屏幕区域

    我正在尝试编写一些简单的 AutoHotkey 脚本来移动窗口 但在获取正确的屏幕尺寸值时遇到问题 我试图获取屏幕上可用区域的大小 通常是全屏分辨率减去任务栏 也许还有任何其他停靠窗口 如 Vista 中的侧边栏 我发现的获取屏幕宽度的方法
  • C# 中隐式/显式转换方法是否继承?

    我不确定我在这里做错了什么 我有一个通用类 它基本上是一个美化的整数 具有一些用于某些字符串格式设置的方法 以及字符串和 int 之间的转换 public class Base protected int m value From int
  • 如何使用 vb.net 将数据插入 Access 表?

    我想在 Access 数据库中插入一个新行 我正在考虑做类似的事情 oConnection new Connection connectionstring oTable oCennection table Orders oRow oTabl
  • Windows 10 上的 LibPNG 构建问题

    我试图在 Windows 10 上构建 libpng 以获取 win32 二进制文件 但我认为有一个与 awk 解析带有 CRLF 行结尾的文件相关的问题 我尝试使用 dos2unix 命令转换文件 但没有成功 结果相同 在 make 命令
  • 局部变量在栈中的顺序是怎样的?

    我目前正在尝试对缓冲区溢出漏洞进行一些测试 这是易受攻击的代码 void win printf code flow successfully changed n int main int argc char argv volatile in
  • Polly 速率限制过早[重复]

    这个问题在这里已经有答案了 我正在尝试了解 Polly 的速率限制政策 public class RateLimiter private readonly AsyncRateLimitPolicy throttlingPolicy priv
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 如何从Apollo客户端的useQuery获取响应头

    我根本无法找到一种方法来做到这一点 有谁知道这是否支持 谢谢 ApolloClient 发出请求的方法以及使用它们的 React Hooks 充当数据实际获取方式的抽象 它可能来自 HTTP 上的远程服务器 来自缓存 来自直接针对模式执行请
  • Javascript:“new Array(4)”与 Array.apply(null, {length: 4}) 有何不同?

    我想生成一个给定长度的空数组并用一些数字填充它 生成具有四个连续数字元素的数组的一种方法是 var x Array apply null length 4 map function item index return index 但当我看到
  • 多线程环境下如何更好的使用ExecutorService?

    我需要创建一个库 其中包含同步和异步方法 executeSynchronous 等待直到有结果 返回结果 executeAsynchronous 立即返回一个 Future 如果需要 可以在其他事情完成后进行处理 我的图书馆的核心逻辑 客户
  • 数字之和 C++

    我应该编写一个程序 要求用户提供正整数值 该程序应该使用循环来获取总和 从 1 到输入数字的所有整数 例如 如果用户输入 50 循环将求出 1 2 3 4 50 但由于某种原因它不起作用 我的 for 循环遇到了麻烦 但这就是我到目前为止所
  • 使用 EditableText 进行 Flutter

    我正在尝试弄清楚如何在 Flutter 中使用 TextEditor 我有 卡片编辑器 基本上我希望能够处理相当于一段文本的内容 new EditableText autofocus true maxLines null backgroun
  • 动态二维数组非连续内存C++

    假设我将二维数组的地址及其二维数组的行和列传递给函数 该函数会将二维数组的地址视为一维数组 例如 int Matrix 如果我执行下面的代码 int arr arr new int row for int i 0 i lt row i ar
  • 如何访问 Scala XML 中的父元素

    The scala xml包表示带有标记树节点的 XML 但是这棵树在 Scala 2 7 中是单向的吗 因为似乎没有办法访问Elem给定的父级Elem 这似乎同样适用于父母Document 例如 在 XOM 中你有getParent an
  • HTTP POST 操作出现错误代码 302

    我有一个 perl 脚本 它将数据发送到我用 php 编写的 Web 服务 这是代码 use LWP UserAgent my ua LWP UserAgent gt new my server endpoint http example