0

我们创建了一个 WEB API(在 .NET 框架 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消息的开头添加“=”。

任何帮助将不胜感激。

4

1 回答 1

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);
于 2013-03-07T21:58:52.290 回答