Требуется помощь при загрузке файлов в Windows Mobile - PullRequest
0 голосов
/ 13 ноября 2009

У меня на рабочем столе запущено настольное приложение. Мне нужно отправить путь к файлу для CGI-скрипта, работающего на сервере. CGI-скрипт берет путь к файлу и загружает содержимое с моего компьютера.

Я пытался отправить путь к файлу через метод httppost; это не работает - кто-нибудь может подсказать мне, как это сделать .. методы, которые я попробовал:

 WebClient upload = new WebClient();

        NetworkCredential nc = new NetworkCredential("test", "admin");

        Uri URL = new Uri("http:\\10.10.21.55\\cgi-bin\\file_upload.cgi");
        upload.Credentials = nc;
        byte [] data = upload.UploadFile(filepath, "c:/Data.txt");
        Console.WriteLine(data.ToString());

и другой способ, которым я пытался это:

 byte[] buf = new byte[8192];
        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest)
        WebRequest.Create("http://10.10.21.55/cgi-bin/file_upload.cgi");
        WebResponse rsp = null;

        request.Method = "POST";
        request.ContentType = "text/xml";
        StreamWriter writer = new StreamWriter(request.GetRequestStream());

        writer.WriteLine("hi hiw are you");
        writer.Close();

оба пути не работают.

но приведенный ниже код работает в десктопе в winmo, но WebClient говорит, что он не реализован подскажите пожалуйста как отправить данные в скрипт присутствующий на сервере в windows mobile

1 Ответ

1 голос
/ 13 ноября 2009

Это так же просто, как правильно получить параметры WebClient? (кажется, что вы передаете путь к файлу как URL, и не используете кодировку):

using(WebClient upload = new WebClient()) {
    NetworkCredential nc = new NetworkCredential("test", "admin");
    upload.Credentials = nc;
    byte[] data = upload.UploadFile(
        @"http://10.10.21.55/cgi-bin/file_upload.cgi", @"c:\Data.txt");
    Console.WriteLine(upload.Encoding.GetString(data));
}
...