我正在尝试复制以下命令行curl:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDbContext<OdeToFoodDbContext>(options => options.UseSqlServer(Configuration["database:connection"]));
services.AddSingleton(p => Configuration);
services.AddSingleton<IGreeter, Greeter>();
services.AddScoped<IRestaurantData, SqlRestaurantData>();
}
public class OdeToFoodDbContext : DbContext
{
public DbSet<Restaurant> Restaurants { get; set; }
}
有没有人在www :: curl或lwp中有一个例子?我一整天都在努力,在这一点上我甚至不值得发布我的尝试,这只会让事情变得混乱。谢谢!!!
答案 0 :(得分:4)
我想您正在询问如何提交一个表单,其中包含一个名为file
的文件字段,其中填充了文件myfile.csv
的内容。
use LWP::UserAgent qw( );
my $ua = LWP::UserAgent->new();
my $response = $ua->post('https://myserver/api/import/data_save.html',
Content_Type => 'form-data',
Content => [
file => [ 'myfile.csv' ],
],
);
die($response->status_line)
if !$response->is_success;
$ua->post
的论据记录在HTTP::Request::Common。
答案 1 :(得分:2)
好吧,让我们解压缩curl命令实际执行的操作,因为-F
意味着很多。
以下是使用WWW :: Curl复制它的方法:
use WWW::Curl::Easy;
use WWW::Curl::Form;
my $curl = WWW::Curl::Easy->new;
my $form = WWW::Curl::Form->new;
$form->formaddfile('myfile.csv', 'file', "multipart/form-data");
$curl->setopt(CURLOPT_URL, 'https://myserver/api/import/data_save.html');
$curl->setopt(CURLOPT_HTTPPOST, $form);
my $response = $curl->perform;
但LWP可能更容易;看到ikegami的回答。