📄 fgkvisitor.java
字号:
package gov.gdlt.ssgly.taxcore.taxblh.gzda.fgxx;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
public class FGKVisitor {
private static String CHARSET="GB2312";
//private static String FGK_SERVER_URL="http://localhost:8083/web1/";
//private static String FGK_SERVER_URL="http://192.9.100.4/admin/";
private static String FGK_SERVER_URL="http://192.9.100.6:9080/admin/";
private static String FGK_GETFGLIST_SERVLET_URL= "getFgList";
private static String FGK_GETFGLIST_PARAM_FGZL = "FGZL";
private static String FGK_GETFGDETAIL_SERVLET_URL= "getFgDetail";
//private static String FGK_GETFGDETAIL_PARAM_FGID = "FGID";
private static String FGK_GETFGDETAIL_PARAM_FGID = "FgId";
//static string for fg xml
private static String FG_TAG = "FG";
private static String FG_ID_TAG = "FG-ID";
private static String FG_NAME_TAG = "FG-NAME";
public FGKVisitor() {
}
/**
* getFgList
*
* @param pNsrnbm String
*/
public List getFgList(String fgzl) throws FgServerNoFoundException,
FgServerResponseException {
try{
//got fg xml from remorte server and rse xml
return parseFgXML(FGKHttpVisitor(
FGK_GETFGLIST_SERVLET_URL, fgzl));
} catch (FGXMLParseException pe){
pe.printStackTrace();
throw new FgServerResponseException("XML PARSE EXCEPTION:"+pe.getMessage());
}
}
/**
* getFgDetail
*
* @param fgId String
*/
public Reader getFgDetail(String fgId) throws FgServerNoFoundException,FgServerResponseException{
return new StringReader(FGKHttpVisitor(FGK_GETFGDETAIL_SERVLET_URL, fgId));
}
/**
* parseFgXML
*
* @param FGXML String
*/
public List parseFgXML(String FGXML) throws FGXMLParseException {
List lfg = new ArrayList();
Element e;
String sFgId;
String sFgName;
try {
//parse xml
Document doc = DocumentBuilderFactory.newInstance().
newDocumentBuilder().parse(new InputSource(new
StringReader(FGXML)));
//get all the fg nodes
NodeList nl = doc.getElementsByTagName(FG_TAG);
for(int i=0;i<nl.getLength();i++){
e = (Element)nl.item(i);
//SET ID AND NAME OF FG
//System.out.println(e.getElementsByTagName(FG_ID_TAG).item(0).getChildNodes().item(0).getNodeValue());
//System.out.println(e.getElementsByTagName(FG_NAME_TAG).item(0).getChildNodes().item(0).getNodeValue());
sFgId = e.getElementsByTagName(FG_ID_TAG).item(0).getChildNodes().item(0).getNodeValue();
sFgName = e.getElementsByTagName(FG_NAME_TAG).item(0).getChildNodes().item(0).getNodeValue();
lfg.add(new FGObject(sFgId,sFgName));
}
return lfg;
} catch (IOException ioe) {
ioe.printStackTrace();
throw new FGXMLParseException("PARSE XML IOEXCEPTION:" +
ioe.getMessage());
} catch (SAXException saxe) {
saxe.printStackTrace();
throw new FGXMLParseException("PARSE XML SAXException:" +
saxe.getMessage());
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
throw new FGXMLParseException(
"PARSE XML ParserConfigurationException:" + pce.getMessage());
} catch (FactoryConfigurationError fce) {
fce.printStackTrace();
throw new FGXMLParseException(
"PARSE XML FactoryConfigurationError:" + fce.getMessage());
}
}
/**
* FGKHttpVisitor
*
* @param ServletName String
* @param ServletParam String
*/
private String FGKHttpVisitor(String ServletName, String ServletParam) throws
FgServerNoFoundException, FgServerResponseException {
HttpURLConnection httpConn = null;
StringBuffer sb = new StringBuffer();
try {
URL reqURL = new URL(FGK_SERVER_URL + ServletName);
//open connection
httpConn = (HttpURLConnection) reqURL.openConnection();
//impostant must set dooutput
httpConn.setDoOutput(true);
httpConn.setUseCaches(false);
httpConn.setRequestMethod("POST");
//set parameters
String parm="";
if(ServletName.equalsIgnoreCase(FGK_GETFGDETAIL_SERVLET_URL)){
parm= FGK_GETFGDETAIL_PARAM_FGID + "=" + ServletParam;
}else{
parm= FGK_GETFGLIST_PARAM_FGZL + "=" + ServletParam;
}
OutputStream os = httpConn.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeBytes(parm);
//System.out.println("ppppppppppppppp="+dos);
dos.flush();
dos.close();
InputStreamReader ir = new InputStreamReader(httpConn.
getInputStream(),CHARSET);
int ch;
while ((ch = ir.read()) != -1) {
sb.append((char) ch);
}
ir.close();
httpConn.disconnect();
//System.out.println("oooooooooooooooooo="+sb.toString());
return sb.toString();
} catch(MalformedURLException e){
e.printStackTrace();
throw new FgServerNoFoundException("SERVER URL ERROR:"+FGK_SERVER_URL+ServletName);
}catch(IOException ioe){
ioe.printStackTrace();
throw new FgServerResponseException("Server response Error:"+ioe.getMessage());
}
}
public static void main(String[] args) {
FGKVisitor fgkvisitor = new FGKVisitor();
// String s = "<?xml version=\"1.0\" encoding=\"GB2312\"?><FG-SET><FG> <FG-ID>12345</FG-ID> <FG-NAME>有关个税起征点的调整的通知</FG-NAME></FG><FG> <FG-ID>12367</FG-ID> <FG-NAME>有关下调印花税的通知</FG-NAME></FG></FG-SET>";
// try {
// fgkvisitor.parseFgXML(s);
// } catch (Exception e) {
// e.printStackTrace();
// }
try{
//display fg list
List l = fgkvisitor.getFgList("AB,CD,EF,GH");
for(int i=0;i<l.size();i++){
FGObject fgo = (FGObject)l.get(i);
System.out.println(fgo.getFGId());
System.out.println(fgo.getFGName());
}
//display fgdetail
BufferedReader br = new BufferedReader(fgkvisitor.getFgDetail("12345"));
int ch;
while ((ch = br.read()) != -1) {
System.out.print((char) ch);
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -