class HttpSQSClient
{
private String server, port, charset;
public HttpSQSClient(String server, String port, String charset)
{
this.server = server;
this.port = port;
this.charset = charset;
}
private string DoProcess(String urlstr)
{
string result = String.Empty;
Uri url = null;
try
{
url = new Uri(urlstr);
}
catch (Exception e)
{
return "The httpsqs server must be error";
}
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "get";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
System.Text.Encoding encode;
try
{
encode = System.Text.Encoding.GetEncoding(response.CharacterSet);
}
catch
{
encode = System.Text.Encoding.Default;
}
System.IO.Stream stream = response.GetResponseStream();
System.IO.StreamReader read = new System.IO.StreamReader(stream, encode);
result = read.ReadToEnd();
response.Close();
return result;
}
catch (IOException ex)
{
return "Get data error";
}
}
public String MaxQueue(String queue_name, String num)
{
String urlstr = "http://" + this.server + ":" + this.port + "/?name="
+ queue_name + "&opt=maxqueue&num=" + num;
String result = null;
result = this.DoProcess(urlstr);
return result;
}
public String Reset(String queue_name)
{
String urlstr = "http://" + this.server + ":" + this.port + "/?name="
+ queue_name + "&opt=reset";
String result = null;
result = this.DoProcess(urlstr);
return result;
}
public String View(String queue_name, String pos)
{
String urlstr = "http://" + this.server + ":" + this.port
+ "/?charset=" + this.charset + "&name=" + queue_name
+ "&opt=view&pos=" + pos;
String result = null;
result = this.DoProcess(urlstr);
return result;
}
public String Status(String queue_name)
{
String urlstr = "http://" + this.server + ":" + this.port + "/?name="
+ queue_name + "&opt=status";
String result = null;
result = this.DoProcess(urlstr);
return result;
}
public String Get(String queue_name)
{
String urlstr = "http://" + this.server + ":" + this.port
+ "/?charset=" + this.charset + "&name=" + queue_name
+ "&opt=get";
String result = null;
result = this.DoProcess(urlstr);
return result;
}
public String Put(String queue_name, String data)
{
String ret = String.Empty;
String urlstr = "http://" + this.server + ":" + this.port + "/?name="
+ queue_name + "&opt=put";
Uri url = null;
try
{
url = new Uri(urlstr);
}
catch (Exception)
{
return "The httpsqs server must be error";
}
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "post";
byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(data);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestBytes.Length;
request.Timeout = 6000;
try
{
Stream requestStream = request.GetRequestStream();
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);
ret = reader.ReadToEnd();
}
catch (Exception)
{
return "Put data error";
}
return ret;
}
}