簡體   English   中英

Perl使用HTTP :: Request上傳文件

[英]Perl upload file using HTTP::Request

我正在使用現有的框架來自動化一些api。 該框架使用HTTP :: Request模塊。 我需要編寫腳本來上傳文件。 我可以使用HTTP :: Request :: Common模塊來執行此操作,但不能使用Http :: Request模塊來執行此操作。 但我只需要使用Http :: Request即可完成此操作。 下面的代碼段:

使用HTTP :: Request :: Common \\ This Works

    $request = POST $uri,
    Content_Type => 'multipart/form-data',
    Content => [
    file => [$file]
    ]
    ;
    my $results=$ua->request($request ) ;

使用HTTP :: Request \\這不起作用,我收到一個錯誤缺少文件

    my $req = HTTP::Request->new("POST", $uri );
    $req->header(Content_Type => "form-data");
    $req->content('file=>$file');
    my $res = $ua->request($req);

有人可以告訴我以上代碼在做什么嗎?

不幸的是, POST方法中發生的事情不僅僅是包裝HTTP::Request對象的構造函數(請參閱此處 )。 至少包括以下內容(通過對代碼的快速掃描):

  • 將Content-Type標頭修改為具有隨機boundary multipart/form-data以指示文件數據在請求中的起始位置
  • 將Content-Disposition標頭設置為適當的值
  • 讀取文件並將文件內容存儲在請求正文中

我強烈建議您不要嘗試手動完成上述所有操作,但是很難知道您的確切約束以及為什么不能使用HTTP::Request::Common

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM