我们已经创建了一个WEB API(在.NET framework 4.0中),并将端点信息提供给我们的一个客户端。他们在Perl中创建了一个发布到我们端点的程序。
到目前为止,他们发布的每个帖子都以null结尾到达我们的端点。当我们最初开始编程时,我们在通过$ .ajax发布时在JQuery中遇到了同样的问题。我们通过在帖子数据的开头添加'='来解决它。
他们提交的Perl代码如下:
sub _postPackages {
my ($self,$dataToSend) = @_;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent("integrationapp/1.0 ");
# Create a request
my $req = HTTP::Request->new(POST => $self->{postAddress} );
$req->content_type("application/json;charset=utf-8");
$req->content($dataToSend->{data});
#print Data::Dumper->Dump([$req]);
# Pass request to the user agent and get a response back
my $res = $ua->request($req);
其中 postAddress 是我们的终端, $ dataToSend 是消息数据。是否有可能需要在 $ dataToSend 消息的开头添加“=”。
非常感谢任何帮助。
答案 0 :(得分:1)
这里有一些伪代码..
但我猜你想做这样的事情:
# some post sub
my ($self, $data) = @_;
my $ua = $self->get_user_agent();
my $json_xs = $self->get_json_xs();
my $json_encoded = $json_xs->utf8->encode($data);
$self->set_post_data($json_encoded);
$self->set_api_call();
my $response_body = $ua->post(
$self->get_api_call(),
'Content' => $self->get_post_data(),
'Content-type' => "application/json;charset=UTF-8"
);
print STDERR "POSTING NEW RESOURCE: " . Dumper($self);