C # HTTP-запрос - PullRequest
       39

C # HTTP-запрос

0 голосов
/ 13 октября 2011

Здравствуйте, у меня проблема с отправкой HTTP-запроса в C # Я хотел бы загрузить файл в запросе HTTP, но я не уверен, как это сделать

Вот код HTML:

<form action="/decrypt/upload" method="post" enctype="multipart/form-data">
            <fieldset>
                <p class="formrow file_upload">
                <label for="dlcfile">Container File</label>
                <input type="file" class="file_field" name="dlcfile" id="dlcfile"/>
                <input type="text" value="Click here to select a file..." class="file_overlay" />
                </p>
                <p class="buttonrow"><button type="submit">Submit »</button></p>
            </fieldset>
        </form>

А вот мой код C #:

public static void decryptContainer(string path)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://dcrypt.it/decrypt/upload");
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";


        using (StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII))
        {
            writer.Write("dlcfile=" + path);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }

Я знаю, что должен дать параметру Файл, но я просто не знаю, как обработать это в C #, может ли кто-нибудь PLX помочь мне:)

1 Ответ

2 голосов
/ 13 октября 2011

Вместо того, чтобы возиться с запросами самостоятельно, просто используйте WebClient.По сути, это класс-оболочка для всех этих классов HttpRequest, который значительно упрощает работу.Ваш код определенно станет намного проще, если вы перейдете на это.

Вам также следует взглянуть на этот ответ, который описывает, как POST-файл на веб-сервер с C #:

Отправить файл через HTTP POST с помощью C #

Или, используя данные формы:

Загрузить файлы с помощью HTTPWebrequest (multipart / form-data)

...