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();
}