我正忙着将一个将音频文件发布到服务器的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(错误的请求)错误。
有谁知道造成这种情况的原因是什么?提前谢谢。
答案 0 :(得分:0)
以下是一些想法可能是什么问题......
使用备用重载来添加标头,这有助于确保正确形成。
myWebClient.Headers.Add("Content-Type", "audio/x-flac; rate=16000");
源文件名的路径不是相同的...尝试提供正在上传的文件的完全限定路径。如果可行,那么您就知道问题所在,并在构建路径时采取更合适的措施。