0

(.NET Framework 4.0で)WEB APIを作成し、エンドポイント情報をクライアントの1つに提供しました。彼らは私たちのエンドポイントに投稿するプログラムを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 に答える