Je veux faire la demande de courbure suivante en C #:
string url = "http://localhost:8080/geoserver/rest/workspaces"; WebRequest request = WebRequest.Create(url); request.ContentType = "Content-type: text/xml"; request.Method = "POST"; string authInfo = "admin:geoserver"; request.Headers["Authorization"] = "Basic " + authInfo; byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("<workspace><name>my_workspace</name></workspace>"); Stream reqstr = request.GetRequestStream(); reqstr.Write(buffer, 0, buffer.Length); reqstr.Close(); WebResponse response = request.GetResponse(); ...
4 Réponses :
L'authentification de base HTTP nécessite tout après "Basic" em> pour être BASE64-codé, essayez donc
J'ai essayé de convertir authinfo en une base64string, mais je reçois alors l'erreur "(400) de mauvaise demande".
@taudorf: hmm ... Téléchargez Fiddler et voyez quelle est la différence entre deux demandes postales.
La solution à ma question modifiait la propriété contenttype em>. Si je change le ContentType request.ContentType = "text/xml";
Utilisation:
request.ContentType = "application/xml"; request.Credentials = new NetworkCredential(GEOSERVER_USER, GEOSERVER_PASSWD);
ou, si vous souhaitez utiliser httpClient: