Запазване на изображението във файл за конкретен URL - стека преливане на Руски

Трябва да запишете файла (в случая на снимката, но като цяло има такива) за неговата URL адрес. Правя искане чрез хет xNet.

Тя връща обект отговор от който данните могат да бъдат получени или чрез използване на ToStream ToString. Опитах се да го направите:







Но тъй като в досието вместо желаният символ въпросителни. Аз го разбирам, защото аз имам данните като низ (но защо се изкривява?). И за да запазите в двоичен формат, е необходимо да се използва поток? По принцип, аз не разбирам в този момент, кажи ми. Благодаря.

настроен 16 Януари '16 в 12:46

Вашият проблем е, че ако не използвате API, която връща низ.

Снимка се състои от последователност от байтове. Това е поредица от байтове и идва със сървъра. Всеки декодиране тази последователност от байтове като низ - грешка, защото на снимката - това е двоична, а не текстов формат.







Обърнете внимание на това какво се случва с картината в програмата.

  1. На сървъра идва набор от байтове
  2. Някъде се превръща в низ се използва кодирането 1
  3. Тогава низ се превръща в байт последователност се използва за кодиране 2
  4. Получената последователност от байтове записани във файла.

Тя трябва да е ясно, че ако кодирането 1 и 2 не са едни и същи - в кошчето ще бъде записан файла. В решението си, че сте решили проблема, като се посочва същото кодиране на стъпки 2 и 3. Въпреки това, правото на тази програма не го направи.

Например, ако в стъпка 2 ще падне последователност от байтове, които не е валиден знак - тя ще се превърне в "един въпрос" и в стъпка 3, въпросът за това ще бъде невъзможно да се превърне обратно.

Правилното решение би било да се изхвърли стъпки 2 и 3 nafig. И за това, че е необходимо да се откаже от използването на реда, за да се върнат Web.GetRequest

Ето кода, който не прави ненужни промени:

Или така (за даден файл, че е безсмислено, цитирам като пример за работа с потока):

И може да получи целият масив от байтове, ако е необходимо: