httpプロトコルベースjavaクライアント
9660 ワード
詳細
1.サーバー側:TTでデータを保存し、サービス側を開く:
2.httpプロトコルに基づくクライアント実装コード:
1.サーバー側:TTでデータを保存し、サービス側を開く:
cd /home/wlh/tt/tokyotyrant/bin/
./ttserver -host 127.0.0.1 -port 1998 -ulog ulog-1 -sid 1 casket.tch
2.httpプロトコルに基づくクライアント実装コード:
package com.tt.client;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpClientTest {
//
public static final String TTSERVER_HOST = "http://10.236.0.12";
//
public static final int TTSERVER_PORT = 1998;
/**
* @date 2011.12.26
* @Administrator wanglihu
* @throws IOException
*/
public static void main(String[] args) throws IOException {
HttpRequest hq = new HttpRequest();
// , put
String msg = hq.put("test_key", "test_value", 0, TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//test_valueCreated
msg = hq.put("test_key","test_value1", 0,TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//Exception in thread "main" java.io.FileNotFoundException: http://10.236.0.12:1998/test_key
// key value
msg = hq.get("test_key", TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//test_value
msg = hq.options(TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//
msg = hq.head("test_key", TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//
msg = hq.delete("test_key", TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//OK
msg = hq.get("test_key", TTSERVER_HOST, TTSERVER_PORT);
System.out.println(msg);//Exception in thread "main" java.io.FileNotFoundException: http://10.236.0.12:1998/test_key
}
}
final class HttpRequest{
public final String put(String key,String value,int flag,String host,int port) throws IOException{
if(flag < 0 || flag > 2){
flag = 0;
}
URL url = new URL(host + ":" + port + "/" +key);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("PUT");// :GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE,CONNECT
connection.setRequestProperty("HOST", host + ":" +port);//
connection.setRequestProperty("ACCEPT", "*/*");// ( )
//PUT header"X-TT-PDMODE", 1( 'tcrdbputkeep'),2( 'tcrdbputcat'),3( 'tcrdbput')
//POST header"X-TT-XNAME" "X-TT-MNAME" .
//X-TT-XNAME "tcrdbext", ,header"X-TT-XOPTS" bitwise-or ,1( ) 2( ),
// URI URL key , value, 。
//header"X-TT-MOPTS" bitwise-or ,1( ), "application/x-www-form-urlencoded" ,
// 。 "application/x-www.form-url-urlencoded"
//PUT header"X-TT-PDMODE", 1( 'tcrdbputkeep'),2( 'tcrdbputcat'),3( 'tcrdbput')
connection.setRequestProperty("X-TT-PDMODE:", " 2 ");
// ( : )
connection.setConnectTimeout(30000);
// ( : )
connection.setReadTimeout(30000);
connection.connect();
OutputStream outputStream = connection.getOutputStream();
// ,
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
// ,
bw.write(value);
// ,
bw.flush();
// , , ,
// getInputStream() http
bw.close();
//connection.getInputStream(), HTTP
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));// ,
// connection.getInputStream() , http , 。
// close() , 。
// , 、 、 、 ,
StringBuffer buffer = new StringBuffer(100);
buffer.append(value);
String line = null;
if(br == null){
System.out.println("result is null!");
}
while((line = br.readLine()) != null){
buffer.append(line);
buffer.append("\r
");
}
br.close();
return buffer.toString();
}
public final String get(String key , String host,int port) throws IOException{
URL url = new URL(host + ":" + port + "/" +key);
//HttpURLConnection URL ( http) URLConnection HttpURLConnection,
// HttpURLConnection , HttpURLConnection API
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// HttpURLConnection , false
connection.setDoInput(true);
// 1: HttpURLConnection , post , http , true, false
connection.setDoOutput(true);
//
connection.setUseCaches(false);
// java ( , , Web java.io.EOFException)
connection.setRequestProperty("Content-type", "application/x-java-serialized-object");
// "GET", GET
connection.setRequestMethod("GET");
connection.setRequestProperty("HOST", host + ":" +port);
connection.setRequestProperty("ACCEPT", "*/*");
// connect
connection.connect();
// getInputStream connect( : connect() , connect() )
// ,
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer buffer = new StringBuffer(100);
String line = null;
if(br == null){
System.out.println("result is null!");
}
while((line = br.readLine()) != null){
buffer.append(line);
buffer.append("\r
");
}
br.close();
return buffer.toString();
}
public final String delete(String key,String host,int port)throws IOException{
URL url = new URL(host + ":" + port + "/" +key);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("DELETE");
connection.setRequestProperty("HOST", host + ":" +port);
connection.setRequestProperty("ACCEPT", "*/*");
connection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer buffer = new StringBuffer(100);
String line = null;
if(br == null){
System.out.println("result is null!");
}
while((line = br.readLine()) != null){
buffer.append(line);
buffer.append("\r
");
}
br.close();
return buffer.toString();
}
public final String options(String host,int port)throws IOException{
URL url = new URL(host + ":" + port + "/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("OPTIONS");
connection.setRequestProperty("HOST", host + ":" +port);
connection.setRequestProperty("ACCEPT", "*/*");
connection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer buffer = new StringBuffer(100);
String line = null;
if(br == null){
System.out.println("result is null!");
}
while((line = br.readLine()) != null){
buffer.append(line);
buffer.append("\r
");
}
br.close();
return buffer.toString();
}
public final String head(String key,String host,int port)throws IOException{
URL url = new URL(host + ":" + port + "/" + key);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("OPTIONS");
connection.setRequestProperty("HOST", host + ":" +port);
connection.setRequestProperty("ACCEPT", "*/*");
connection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer buffer = new StringBuffer(100);
String line = null;
if(br == null){
System.out.println("result is null!");
}
while((line = br.readLine()) != null){
buffer.append(line);
buffer.append("\r
");
}
br.close();
return buffer.toString();
}
}