- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要发送完全按照我指定的格式发送的请求,包括空格。实现这一目标的最佳方法是什么?
我要发送的请求类型示例:
GET
/
key=val
Host:example.com
该协议(protocol)是一个简单的请求-响应协议(protocol),如 HTTP。我更愿意尽可能利用 LWP 的现有代码。
最佳答案
我认为使用 LWP 是可以实现的。老实说,这有点工作。
我已经看了一下,您需要实际实现自己的协议(protocol)(请参阅 LWP::Protocol
),因为这是创建实际请求的地方。之后,您需要启用该协议(protocol)作为 http(或 https)的实现者:
LWP::Protocol::implementor('http', 'MyFunkyProtocol');
例如,查看 LWP::Protocol::GHTTP
代码。
简单地说,您需要创建一个实现request
方法的包。在该方法中,您需要组装请求、打开连接、发送它并接收响应。
这是一个简单的工作示例。
MyFunkyProto.pm:
package MyFunkyProto;
use LWP::Protocol;
@ISA = qw/LWP::Protocol/;
use HTTP::Response;
use IO::Socket;
use Carp qw/croak/;
sub request
{
my ($self, $request, $proxy, $arg, $size, $timeout) = @_;
my $remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "example.com",
PeerPort => "http(80)"
) or croak('unable to connect');
my $message = <<EOF;
GET
/
key=val
Host:example.com
EOF
$remote->print($message);
$remote->flush();
local $/;
my $resp = HTTP::Response->parse(<$remote>);
$remote->close();
return $resp;
};
1;
脚本.pl:
#!/usr/bin/env perl
use strict;
use warnings;
use lib '.';
use MyFunkyProto;
use LWP::Protocol;
use LWP::UserAgent;
LWP::Protocol::implementor('http', 'MyFunkyProto');
my $fr = HTTP::Request->new('GET', 'http://www.example.com/');
my $ua = LWP::UserAgent->new();
my $r = $ua->request($fr);
print $r->as_string();
请注意,您实际上需要从 $request
对象构造请求(并获取主机和端口)。或者,如果您很懒惰,只需将其存储在该对象中的某个位置即可。
关于perl - 如何使用 Perl 通过套接字发送逐字请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100805/
我正在尝试返回数组“seats”,它本质上应该从文本文件返回数据 - 15x30 网格“#”。我已经尝试了很多东西,但我感到很沮丧,因为我对 java 的经验很少。我的代码可以编译,但在调用该方法时无
对于任何输入的字符串,我们需要按任意顺序的单词匹配来查找 super 字符串。即输入字符串中的所有单词必须以任何顺序出现在输出字符串中。例如给定数据集:“字符串搜索”“Java 字符串搜索”“手动 C
我有一个文本文件,其中包含一些我想放入二维数组中的内容。该文本文件由等长的句子组成。如何将每个单词放入数组? 文本文件的例子是- This is stackoverflow I am user 这个文
我正在编写一个实用程序,它接受一个 .resx 文件并创建一个包含 .resx 文件中所有名称/值对属性的 javascript 对象。这一切都很好,直到 .resx 中的值之一是 该经销商接受电子订
我输入了大量的数学表达式和方程式,我想为每个表达式和方程式打印出 latex 表示形式。到目前为止,我已经尝试过 Sage 和 sympy,但棘手的部分是不对表达式中的术语重新排序。 所以,如果我的输
我正在尝试通过实现异步任务在 android (java) 中流式传输 chatgpt api 的响应(逐字),但我收到错误。我正在将 java 的 HTTPurlconnection 库与输入和输出
我正在尝试通过实现异步任务在 android (java) 中流式传输 chatgpt api 的响应(逐字),但我收到错误。我正在将 java 的 HTTPurlconnection 库与输入和输出
我是一名优秀的程序员,十分优秀!