C#将文件发布到服务器

时间:2011-12-04 13:24:31

标签: c# post webclient

我正忙着将一个将音频文件发布到服务器的perl脚本转换为C#

这是perl脚本:

#!/usr/bin/perl
require LWP::UserAgent; 
my $url = "url";
my $audio = "";
open(FILE, "<" . "test.flac");
while(<FILE>)
{
$audio .= $_;
}
close(FILE);
my $ua = LWP::UserAgent->new;
my $response = $ua->post($url, Content_Type => "audio/x-flac; rate=16000", Content =>   $audio);
if ($response->is_success)
{
print $response->content;
}
1;

这是我的C#代码

        string uriString = "url";
        WebClient myWebClient = new WebClient();
        myWebClient.Headers.Add("Content-Type: \"audio/x-flac; rate=16000\"");
        byte[] responseArray = myWebClient.UploadFile(uriString, "POST", "test.flac");
        string response = Encoding.ASCII.GetString(responseArray);
        Console.WriteLine(response);

由于某种原因,如果我运行C#代码,它会一直返回400(错误的请求)错误。

有谁知道造成这种情况的原因是什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下是一些想法可能是什么问题......

  1. 使用备用重载来添加标头,这有助于确保正确形成。

    myWebClient.Headers.Add("Content-Type", "audio/x-flac; rate=16000");
    
  2. 源文件名的路径不是相同的...尝试提供正在上传的文件的完全限定路径。如果可行,那么您就知道问题所在,并在构建路径时采取更合适的措施。