» »

C#; WebClient class; problem z uploadanjem

C#; WebClient class; problem z uploadanjem

Microsoft ::

Na natu sem sstaknil sledeco kodo:

Console.Write("\nPlease enter the URI to post data to : ");
string uriString = Console.ReadLine();
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
Console.WriteLine("\nPlease enter the data to be posted to the URI {0}:",uriString);
string postData = Console.ReadLine();
// Apply ASCII Encoding to obtain the string as a byte array.
byte[] postArray = Encoding.ASCII.GetBytes(postData);
Console.WriteLine("Uploading to {0} ...", uriString);
myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");

//UploadData implicitly sets HTTP POST as the request method.
byte[] responseArray = myWebClient.UploadData(uriString,postArray);

// Decode and display the response.
Console.WriteLine("\nResponse received was :{0}", Encoding.ASCII.GetString(responseArray));

...

Ko program pozenes, je portrebno vpisati URI, potem pa se nekaj, kar bo uploadano. No, na PCju imam postavljen IIS, v root datoteki je samo en fajl, Miha.txt. Dovolil sem branje in pisanje, NTFS je Full control za Everyone.

Ko pozenem program, najprej vpisem http://192.168.0.1 (ali pa dodam se /Miha.txt), potem pa se napisem neke crke, recimo. V vrstici, ki je odebeljena, pride do errorja:
Unhandled Expection: System.Net.WebExpection: The remote server returned an error: 405 Method Not Allowed.
at System.Net.HttpWebRequest.CheckFinalstatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult async Result)
at System.Net.HttpWebRequest.GetResponse()
at System.Net.WebClient.Upload(String address, String method, Byte data)


Kaj bi to lahko bilo krivo? Oz, kako bi v programu preveril, ce lahko zapisujem v dolocen folder oz. datoteko? Ker sem nekje ze srecal, mislim, da WriteAllow (ali nekaj temu podobnega), s cemer preversi, ce lahko zapisujes.

Pa vprasal bi se za kaksen primer, kaj se lahko recimo napise v oklapej v tem ukazu:
myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

64202 ::

Sicer ne uporabljam MSjevih toolov, ampak si zihr, da tale koda dela to kar mislis (da posname podatke v fajl)? Naceloma mora HTTP POST prestreci CGI skripta ali pa Web Service. Ce me spomin ne vara, se za prenose uporablja PUT.

Microsoft ::

To o CGI skriptah nic ne vem. Sem pa zdele poskusil ukaz UploadFile in tudi tu dobim isti error.

Drgace pa te stvari iscem tukaj. Tu sem nekje zasledil, da URI 'podpira' vse, kar se zacne z http. Tako, da ce hocem preko http zapisat neki v fajl.txt, naj ne bi bilo tezav. Ali pac?

Aja, pa DownloadFile dela. No, se vedno pa iscem ukaz, kako programsko preveriti, ce lahko zapisujem v neko datoteko.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

kopernik ::

Microsoft ::

Heh, zdej mi pa mece error: (403) Forbidden. In ti mi napise, ce uporabim UploadData ali pa UploadFile. Pa namesto POST sem preizkusil dati OPTIONS, GET, HEAD, PUT, DELETE, TRACE. In pri vecini mi napise zgornji error...


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

64202 ::

IIS moras po moje nastavit, da ti bo podpiral uploade, taksne ali drugacne. "FTP style" uploadli niso pretirano obicajni na web serverjih. Sicer, ce te zanima kaj je x-ww-form-...blabla, si preberi opis HTTP protokola. HOWTO-jev je na miljardemiljone in pri tem malo pozabi MS-specific zadeve iz .NETa.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344333586 (73589) Macketina
»

Socket Server

Oddelek: Programiranje
142443 (1636) fx
»

ASP.NET + C# vprašanje

Oddelek: Programiranje
342796 (1810) Morenov
»

[C#] Simobilov Glasnik

Oddelek: Programiranje
134349 (1429) Mrch
»

[.NET ali c#] ne najdem dokumentacije

Oddelek: Programiranje
81471 (1317) atasmrk

Več podobnih tem