C # отправить файл на сервер - PullRequest
2 голосов
/ 04 декабря 2011

Я занят преобразованием сценария 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);

по какой-то причине он продолжает выдавать ошибку 400 (неверный запрос), если я запускаю код C #.

Кто-нибудь знает, что может быть причиной этого?Заранее спасибо.

1 Ответ

0 голосов
/ 05 декабря 2011

Вот пара идей, в чем может быть проблема ...

  1. Используйте альтернативную перегрузку для добавления заголовка, это поможет убедиться, что он сформирован правильно.

    myWebClient.Headers.Add("Content-Type", "audio/x-flac; rate=16000");
    
  2. Пути к имени исходного файла не должны совпадать с корнем ... Попробуйте указать полный путь к загружаемому файлу.Если это работает, то вы знаете, где проблема, и делаете что-то более подходящее при построении путей.

...