需要mimo icap netty实现客户端示例代码

需要mimo icap netty实现客户端示例代码,netty,Netty,我正在使用Netty实现ICAP 1.0.1.GA 但我无法实施有效的解决方案。有人用过它并找到了有效的解决方案吗?网站上的文档链接也不起作用 我的要求是检查病毒请求中的附件 任何帮助或正面将是伟大的!!! 提前感谢。可能对您有用,尽管它现在似乎没有被维护。下面的示例打开一个到ICAP服务器的套接字,为套接字准备一个输出流和一个输入流。然后准备一个ICAP头并将其写入输出流。来自ICAP服务器的响应将写入流中。阅读它,想用就用。 您可以根据需要使用RESPMOD、REQMOD代替选项。下面的代码

我正在使用Netty实现ICAP 1.0.1.GA

但我无法实施有效的解决方案。有人用过它并找到了有效的解决方案吗?网站上的文档链接也不起作用

我的要求是检查病毒请求中的附件

任何帮助或正面将是伟大的!!!
提前感谢。

可能对您有用,尽管它现在似乎没有被维护。

下面的示例打开一个到ICAP服务器的套接字,为套接字准备一个输出流和一个输入流。然后准备一个ICAP头并将其写入输出流。来自ICAP服务器的响应将写入流中。阅读它,想用就用。 您可以根据需要使用RESPMOD、REQMOD代替选项。下面的代码返回ICAP服务器提供的选项

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;

public class MyTestICAPClient {

public static void main(String[] args) {
    Socket socket = null;
    Writer out = null;
    BufferedReader in = null;
    try {
        socket = new Socket("10.4.255.101", 1344);//ICAP server address/port

            out = new OutputStreamWriter(socket.getOutputStream(), "ISO-8859-1");

            out.write("OPTIONS icap://10.4.255.101/avscan ICAP/1.0" + "\r\n"
                    + "Host: 10.4.253.100"+"\r\n"
                    + "User-Agent: IT-Kartellet ICAP Client/0.9"+"\r\n"//your User-Agent
                    + "Encapsulated: null-body=0\r\n"
                    + "\r\n");

            out.write("\r\n");
            out.flush();
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line = null;

            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            out.close();
            in.close();
            socket.close();
        }catch(Exception exp){
            exp.printStackTrace();
        }finally {
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  }
ICAP的REQMOD、RESMOD标头可能是

String requestBuffer = 
            "RESPMOD icap://"+serverIP+"/"+icapService+" ICAP/"+VERSION+"\r\n"
            +"Host: "+serverIP+"\r\n"
            +"User-Agent: "+USERAGENT+"\r\n"
            +"Allow: 204\r\n"
            +"Preview: "+previewSize+"\r\n"
            +"Encapsulated: res-hdr=0, res-body="+resBody.length()+"\r\n"
            +"\r\n"
            +resBody
            +Integer.toHexString(previewSize) +"\r\n";
您可以使用上述标头从ICAP服务器获取响应。 您可以将文件写入需要发送到ICAP服务器的输出流

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;

public class MyTestICAPClient {

public static void main(String[] args) {
    Socket socket = null;
    Writer out = null;
    BufferedReader in = null;
    try {
        socket = new Socket("10.4.255.101", 1344);//ICAP server address/port

            out = new OutputStreamWriter(socket.getOutputStream(), "ISO-8859-1");

            out.write("OPTIONS icap://10.4.255.101/avscan ICAP/1.0" + "\r\n"
                    + "Host: 10.4.253.100"+"\r\n"
                    + "User-Agent: IT-Kartellet ICAP Client/0.9"+"\r\n"//your User-Agent
                    + "Encapsulated: null-body=0\r\n"
                    + "\r\n");

            out.write("\r\n");
            out.flush();
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line = null;

            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            out.close();
            in.close();
            socket.close();
        }catch(Exception exp){
            exp.printStackTrace();
        }finally {
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  }

谢谢你的回答。我的要求与通常提到网站URI的ICAP请求略有不同。我的需要是从我的应用程序中点击ICAP服务器,而不是转到在ICAPRequest中包装我的HTTPRequest的特定URI。我已经回答了我的问题。终于开始工作了。