Ahoj,
už třetí den se drbu s tím, že Widlo C# WebClient dělá úplně něco jiného, než chci, tedy:
WebClient webClient = new
WebClient();
Snažím se o úplně jednoduchou věc, odeslat data pomocí POST požadavku na webový server.
S příkazem CURL vše 100% funguje, šup za minutu!
curl -X POST -d @import.xml http://127.0.0.1:5000/api/rest/Tj. pomocí POST požadavku službě posílám data.
Takhle vypadá sestavený požadavek:
POST /api/rest/ HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: curl/7.67.0
Accept: */*
Content-Length: 5335
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
A všechno funguje na 100%
...ne tak ve světě Microsoftu
webClient.Headers.Clear();
webClient.Headers.Add("Accept" , "*/*" );
webClient.Headers.Add("User-Agent", "DataCON");
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded" );
webClient.UploadFile(myUri,"POST",
....
A výstup požadavku:
POST /api/rest/ HTTP/1.1
Accept: */*
Content-Type: multipart/form-data; boundary=---------------------8d7689803def3b6
User-Agent: CsharpConnector
Host: 127.0.0.5:5000
Content-Length: 5637
Expect: 100-continue
Connection: Keep-Alive
-----------------------8d7689803def3b6
Content-Disposition: form-data; name="file"; filename="produkt.xml"
Content-Type: application/x-www-form-urlencoded
Kdy všechno mezi boundary=----- je spokojeně ignorováno...
Nerad používám knihovny třetích stran, už jsem tam dvakrát našel potenciální backdoor, kdy knihovny "volaly domů".
A teď co s tím, napadá mě:
- zachovat se násilně a jít do M$ na lov programátorů (pokud se lov provede, budete mě do konce života živit)
- nějak rozm.... kód webklienta a zjistit, kde se tam ta **** bere, což mi zabere tak měsíc a možná to skončí možností A
- kouknout se po něčem jiném na odesílání dat, kdy mi webklient ...plně stačí
Někdo říká, že M$ je sbírka ........ a že jejich věci jsou jen rozbité demoverze, aby mohli vydávat nové.
Fakt jsem z toho hotovej, prolezl jsem snad už celý internet, protože v celém projektu i v jiných projektech WebClient používám, přecházet na webrequest...ale C# je splácaninou nových a starých tříd, používá se to vůbec?
Fakt mi je z toho zle...
...CHCI KREV!!! JEJICH KREV!!!
Teď jsem se znova ptal Google a ...jako napotvoru našel.Našel jsem info, že problém způsobuje použitá metoda "UploadFile" a mám použít: UploadData
You should use UploadData method of WebClient class instead of UploadFile.
Ale tu krev chci stejně! JEJICH KREV!