mi rendo conto che il titolo della domanda è di circa PowerShell, ma non è davvero quello che la domanda sta chiedendo? In entrambi i casi ...
Il WebClient è un wrapper molto stupido per HttpWebRequest. WebClient è ottimo se stai semplicemente facendo un semplice consumo di servizi o pubblicando un po 'di Xml, ma il compromesso è che non è così flessibile come potresti desiderarlo. Non sarai in grado di ottenere le informazioni che stai cercando da WebClient.
Se è necessario il codice di stato, scaricarlo da HttpWebResponse. Se si stavano facendo qualcosa di simile (solo inviare una stringa in un URL) w/WebClient:
var bytes =
System.Text.Encoding.ASCII.GetBytes("my xml");
var response =
new WebClient().UploadData("http://webservice.com", "POST", bytes);
allora faresti questo con HttpWebRequest per ottenere il codice di stato. Stessa idea, solo più opzioni (e quindi più codice).
//create a stream from whatever you want to post here
var bytes =
System.Text.Encoding.ASCII.GetBytes("my xml");
var request =
(HttpWebRequest)WebRequest.Create("http://webservice.com");
//set up your request options here (method, mime-type, length)
//write something to the request stream
var requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
var response = (HttpWebResponse)request.GetResponse();
//returns back the HttpStatusCode enumeration
var httpStatusCode = response.StatusCode;
fonte
2009-09-24 20:20:54
Ciò genera un'eccezione quando ottiene qualcosa tranne un messaggio 2xx (penso). Non è previsto un comportamento a mio parere –
@JoePhilllips Ho aggiunto un tentativo ..prendere lo snippet in modo che possa gestire altri codici di stato. – merv
@merv per qualche motivo la tua modifica è stata rifiutata da qualcun altro, ma sono andato avanti e ho aumentato il tuo commento e ho fatto la modifica manualmente. grazie per l'invio – halr9000