C#中
//此處為http參數地區,可為普通拼接字串或json,xml等格式 string json ="{\"removeFloatingIp\" : {\"address\": \"172.26.80.118\"}}"; byte[] data = encoding.GetBytes(json); //此處為為http請求url var uri = new Uri("http://172.26.80.16:8774/v1.1/1/servers/36"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); //用此方法可以添加標準或非標準http請求,諸如conten-type ,accept,range等 request.Headers.Add("X-Auth-Token", HttpUtility.UrlEncode("openstack")); //此處為C#實現的一些標準http要求標頭添加方法,用上面的方面也可以實現 request.ContentType = "application/json"; request.Accept = "application/xml"; // request.ContentLength = data.Length; //此處添加標準http請求方面 request.Method = "POST"; System.IO.Stream sm = request.GetRequestStream(); sm.Write(data, 0, data.Length); sm.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8); Char[] readBuff = new Char[256]; int count = streamRead.Read(readBuff, 0, 256); //content為http響應所返回的字元流 String content = ""; while (count > 0) { String outputData = new String(readBuff, 0, count); content += outputData; count = streamRead.Read(readBuff, 0, 256); } response.Close();
JAVA中:HttpPost req=new HttpPost("http://172.26.80.15:35357/v2.0/tokens"); StringEntity entity = new StringEntity("{\"auth\":{\"passwordCredentials\":{\"username\": \"admin\", \"password\": \"openstack\"}}}");
//此處的entity可以定義為ByteArrayEntity,用以可以傳任意格式的參數
req.setEntity(entity); req.setHeader("Content-type", "application/json"); req.setHeader("X-Auth-Token", "openstack"); HttpResponse httpresponse = new DefaultHttpClient().execute(req); System.out.println(); try{BufferedReader reader = new BufferedReader(new InputStreamReader(httpresponse.getEntity().getContent())); String line = reader.readLine(); //while (line != null) { //line = reader.readLine(); //} System.out.println(line);}catch (Exception e) {e.printStackTrace();}