Panatilihin ang mga Byte ng Binary File Kapag Nag-a-upload sa Pamamagitan ng Proxy
Panatilihin ang mga byte at haba sa byte ng file kapag nag-a-upload sa pamamagitan ng proxy sa halip na i-decode ang artifact bilang teksto at muling buuin gamit ang ASCII.
Dapat makarating ang binary file sa HTTP client bilang mga byte. Ang pagbasa nito gamit ang text reader at muling pag-encode ng resultang string bilang ASCII ay maaaring palitan ang mga halaga bago pa makatanggap ng anuman ang proxy. Ang paggana ng maliit na text sample ay hindi ginagawang ligtas ang landas na iyon para sa isang larawan, archive o dokumento.
Sa umiiral na .NET upload path, palitan ang conversion na iyon ng binary body source:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);
Ipadala ang content sa pamamagitan ng naka-configure na HTTP upload ng application; itinatatag ng fragment ang body source, habang ang umiiral na client ang may hawak pa rin ng method, destinasyon, proxy at pamamahala ng lifetime.
Alisin ang anumang Content-Length na kinakalkula mula sa bilang ng character ng lumang string. Sinusukat ng field na ito ang mga octet. Hayaang ang HTTP library ay bumuo ng framing mula sa body representation sa halip na ipares ang bilang ng character sa isang buffer na naka-encode nang iba.
Para sa sinadyang text upload, piliin nang malinaw ang encoding at kunin ang kinakailangang haba mula sa mga byte na ipinadala. Ang desisyon sa text format na iyon ay hindi dapat ilapat sa mga arbitrary na file.
Ihambing ang inilipat na artifact sa isang mapagkakatiwalaang inaasahang halaga. Kinukumpirma ng tagumpay ng HTTP na natapos ang isang upload operation sa layer na iyon; hindi nito maipapakita na ang naunang text conversion ay nagpanatili ng orihinal na mga byte.