有关C代码中嵌入调用Perl程序问题

tampras 发布于 2016/01/22 22:45
阅读 441
收藏 0

C代码中嵌入Perl程序,已根据调查完成如下的代码编

---------------------

static PerlInterpreter *my_perl;//一个perl

PERL_SYS_INIT3(NULL,NULL,NULL);//perl境的初始

my_perl = perl_alloc();//器分配

if(!my_perl){

return;}

perl_construct( my_perl );//建一个解

char *embedding[] = {"","D:\\GetHttp.pl ",""}; 

perl_parse( my_perl, NULL, 0, embedding,(char**)NULL);

perl_run(my_perl);

perl_destruct(my_perl);//析构解

perl_free(my_perl);//放解

PERL_SYS_TERM();

---------------------

已能在C运行境(VS2008)中自动执"D:\\GetHttp.pl",但问题行的果和在命令行运行"Perl D:\\GetHttp.pl"不一致

(个人理解既然是Perl文件的解析行,同一台电脑WIN运行应该是完全一的)

GetHttp.pl主要是访问网址,访问信息,代如下:

------------------------------------------

#!/usr/bin/perl #!

use LWP::UserAgent;

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

my $server_endpoint = "https://www.baidu.com";

my $req = HTTP::Request->new(GET => $server_endpoint);

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

if ($resp->is_success) {

  my $message = $resp->content;

  print "Received reply: $message\n";

}

else {

  print "HTTP GET error code: ", $resp->code, "\n";

  print "HTTP GET error message: ", $resp->message, "\n";

}--------------------------------------------

命令行运行果:($resp->is_success)的判定True,可打印出返回信息内容

C编译环境(VS2008)运行果:($resp->is_success)的判定False,返回错误501,(attemp to reload IO/Socket.pm aborted

 计应该VS2008编译环境中某个置有问题,或者是需要再C嵌入代中追加相关量的定,望各位大神教!

加载中
0
魔力猫
魔力猫

首先你们确认服务端日志里面,返回是正常的吗?


0
t
tampras

引用来自“魔力猫”的评论

首先你们确认服务端日志里面,返回是正常的吗?


不好意思 请问“服务端日志“是怎么查看的?
魔力猫
魔力猫
抱歉,没注意看你们链接的是百度。建议自己建一个测试服务器。看服务器端收到的请求是什么。或者抓包看看。 以及用其他语言调用一下perl脚本,看看有什么区别。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部