java调用万网域名接口
1.常量定义
public class DomainConstants { public static class CHARARRAY { public static String[] digitalArray = new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; public static String[] letterArray = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; } /** * 在万网www.net.cn上目前支持的域名后缀类型 */ public static class SUFFIX { public static String DOMAIN_COM = ".com"; public static String DOMAIN_CN = ".cn"; public static String DOMAIN_XYZ = ".xyz"; public static String DOMAIN_WANG = ".wang"; public static String DOMAIN_NET = ".net"; public static String DOMAIN_ORG = ".org"; public static String DOMAIN_TOP = ".top"; public static String DOMAIN_REN = ".ren"; public static String DOMAIN_CLUB = ".club"; public static String DOMAIN_PUB = ".pub"; public static String DOMAIN_ROCKS = ".rocks"; public static String DOMAIN_BAND = ".band"; public static String DOMAIN_MARKET = ".market"; public static String DOMAIN_SOFTWARE = ".software"; public static String DOMAIN_SOCIAL = ".social"; public static String DOMAIN_LAWYER = ".lawyer"; public static String DOMAIN_ENGINEER = ".engineer"; public static String DOMAIN_ME = ".me"; public static String DOMAIN_BIZ = ".biz"; public static String DOMAIN_COMCN = ".com.cn"; public static String DOMAIN_NETCN = ".net.cn"; public static String DOMAIN_ORGCN = ".org.cn"; public static String DOMAIN_GOVCN = ".gov.cn"; public static String DOMAIN_NAME = ".name"; public static String DOMAIN_INFO = ".info"; public static String DOMAIN_CC = ".cc"; public static String DOMAIN_TV = ".tv"; public static String DOMAIN_MOBI = ".mobi"; public static String DOMAIN_ASIA = ".asia"; public static String DOMAIN_CO = ".co"; public static String DOMAIN_TEL = ".tel"; public static String DOMAIN_SO = ".so"; public static String DOMAIN_我爱你 = ".我爱你"; public static String DOMAIN_中国 = ".中国"; public static String DOMAIN_公司 = ".公司"; public static String DOMAIN_网络 = ".网络"; public static String DOMAIN_集团 = ".集团"; } /** * 在万网www.net.cn上目前支持的域名查询地址 */ public static class NETURL{ //查询域名是否已经被注册 public static String DOMAIN_CHECK = "http://panda.www.net.cn/cgi-bin/check.cgi"; //查询域名注册者联系信息 public static String DOMAIN_WHOIS = "http://whois.www.net.cn/whois/domain/"; } }
2.进制转换类定义,后面会用到
import java.util.HashMap; import java.util.Map; import java.util.Stack; public class HexTransformatUtil { /** * 将十进制转换为任意进制值 * @param digths 转换后的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ" * @param num 将被转换的十进制值 * @param length 转换到指定字符串后,如果不足length长度位,自动补足最小值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ"将在最前补"a" * @return */ public static String hex10ToAnly(String digths, int num,int length){ StringBuffer str = new StringBuffer(""); int base = digths.trim().length(); if(0==num){ str.append(digths.charAt(0)); }else{ Stack<Character> s = new Stack<Character>(); while(num != 0){ s.push(digths.charAt(num%base)); num/=base; } while(!s.isEmpty()){ str.append(s.pop()); } } String prefix = ""; String suffix = str.toString(); if(length>suffix.length()){ for(int count = 0;count<length-suffix.length();count++){ prefix = prefix + digths.charAt(0); } } return prefix + suffix; } /** * 将任意进制转换为十进制值 * @param digths 转换前的进制最小位上,依次出现的字符值,比如26进制"ABCDEFGHIJKLMNOPQRSTUVWXYZ" * @param hexValue 转换前的进制字符串值 * @return */ public static int hexAnlyTo10(String digths, String hexValue){ if(null==hexValue||"".equals(hexValue.trim())) return 0; int base = digths.trim().length(); Map<String,Integer> digthMap = new HashMap<String,Integer>(); int count=0; for(char item : digths.trim().toCharArray()){ digthMap.put(""+item, count); count++; } String str = new StringBuffer(hexValue.trim()).reverse().toString(); int sum = 0; for(int index = 0;index<str.length();index++){ sum = new Double(Math.pow(base, index)).intValue() * digthMap.get(""+str.charAt(index)) +sum; } return sum; } public static void main(String[] args) { //将十进制"0123456789"值55转换为26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”对应的值,不需要格式化最后输出字符串 System.out.println(hex10ToAnly("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 55, 0)); //将26进制“ABCDEFGHIJKLMNOPQRSTUVWXYZ”字符串值“CD”转换为十进制"0123456789"值55对应的值,不需要格式化最后输出字符串 System.out.println(hexAnlyTo10("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "CD" )); } }
3.域名检查
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.springside.modules.utils.xml.XMLElement; public class DomainSearch { static DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); /** * 利用httpclient发送soap请求 * @param postUrl * @param parameterList * @return */ public static String doPost(String postUrl, List<NameValuePair> parameterList) { String retStr = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); RequestConfig config = RequestConfig.custom() .setConnectTimeout(2000) .setSocketTimeout(2000) .build(); // 请求地址 HttpPost httpPost = new HttpPost(postUrl); httpPost.setConfig(config); UrlEncodedFormEntity entity; try { if(null==parameterList) parameterList = new ArrayList<NameValuePair>(); entity = new UrlEncodedFormEntity(parameterList, "UTF-8"); httpPost.setEntity(entity); CloseableHttpResponse response = closeableHttpClient.execute(httpPost); // getEntity() HttpEntity httpEntity = response.getEntity(); if (httpEntity != null) { // 打印响应内容 retStr = EntityUtils.toString(httpEntity, "UTF-8"); //System.out.println("response:" + retStr); } // 释放资源 closeableHttpClient.close(); } catch (Exception e) { System.out.println("httpclient exception:"+e.getMessage()); } return retStr; } /** * 域名是否被注册检查 * @param domainName 检查的域名,不包含域名后缀 * @param domainSuffix 域名后缀 */ public static void checkDomain(String domainName, String domainSuffix) { String domain = domainName + domainSuffix; List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("area_domain", domain)); params.add(new BasicNameValuePair("timeStamp", dateFormat.format(new Date()))); String xml = doPost(DomainConstants.NETURL.DOMAIN_CHECK, params); XMLElement xmlElement = null; try { xmlElement = XMLElement.fromXML(xml); } catch (Exception e) { System.out.println("xml parsing exception :"+xml); } String original = xmlElement.getLeafValue("original"); if(original!=null){ /*if(original.split(":")[0].trim().equals("210")){ System.out.println("【"+domain+"】 域名可以注册"); }else if(original.split(":")[0].trim().equals("211")){ System.out.println("【"+domain+"】域名已经注册"); }else if(original.split(":")[0].trim().equals("212")){ System.out.println("【"+domain+"】域名参数传输错误"); }else if(original.split(":")[0].trim().equals("213")){ System.out.println("【"+domain+"】域名查询超时"); }*/ String codeStr = original.split(":")[0].trim(); if(codeStr.equals("210")){ System.out.println(codeStr+"【"+domain+"】 域名可以注册 域名可以注册 域名可以注册 域名可以注册 域名可以注册 域名可以注册"); }else { System.out.println(codeStr+"【"+domain+"】 域名已经注册"); } } } /** * 检查域名所有者 * @param domainName * @param domainSuffix */ public static void whoisDomain(String domainName, String domainSuffix) { String requestUrl = DomainConstants.NETURL.DOMAIN_WHOIS + domainName + domainSuffix; String str = doPost(requestUrl,null); System.out.println("whoisDomain url:" + requestUrl+",response:"+str); } public static void main(String[] args) { //查询域名jd.com域名注册者信息 whoisDomain("jd", DomainConstants.SUFFIX.DOMAIN_COM); //遍历所有四位英文小写字母的com域名(aaaa.com~zzzz.com)是否被注册 int length = 4; int maxValue = new Double(Math.pow(26, length)).intValue()-1; int mixValue = 0; String digths = "abcdefghijklmnopqrstuvwxyz"; for(int index = mixValue;index<=maxValue;index++){ String domain = HexTransformatUtil.hex10ToAnly(digths, index, length); checkDomain(domain, DomainConstants.SUFFIX.DOMAIN_COM); //万网(www.net.cn)对于频繁调用有相应处理,大致是限制频繁调用的IP在随后几小时内不响应 //所以这里第一不能使用多线程并发调用,第二要控制每次调用间隔时间,这里两次调用间隔为400毫秒 try {Thread.sleep(400);} catch (InterruptedException e) {} } } }
相关推荐
通过以上知识点的学习和实践,你可以掌握如何使用Java调用SOAP接口,以及如何根据具体需求进行定制。在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。
本案例聚焦于使用Java语言调用百度翻译API来实现文本的翻译功能。百度翻译API提供了一种高效且便捷的方式来处理多语言之间的转换,特别适用于开发具有国际化需求的应用。 首先,我们需要了解百度翻译API的基本概念...
在Java编程中,通过URL调用接口是一种常见的网络通信方式,尤其在Web服务和API交互中扮演着重要角色。这个项目提供了一种方法,通过URL发送请求并接收响应,然后将响应的字符串转换为JSON格式进行处理。接下来,我们...
Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...
这里我们将使用IKVM.NET,这是一个开源项目,它实现了.NET运行时的Java虚拟机,使得.NET程序可以直接使用Java类库。 1. **安装IKVM.NET**:首先,你需要在你的C#项目中引入IKVM.NET库,这可以通过NuGet包管理器或者...
- **生成Java客户端代码**:使用Java的工具,如wsimport或cxf-codegen-plugin,从C# Web服务的WSDL(Web Service Description Language)文件生成Java客户端代理类。 - **配置和调用服务**:在Java项目中引入生成...
4. **生成JNI头文件**:使用Java的`javah`工具生成C/C++的头文件,这个头文件包含了JNI函数原型,供Delphi使用。 5. **编写Delphi代码**:在Delphi 7中创建一个新的单元,导入生成的JNI头文件,并实现调用Java接口...
使用`CreateJavaVM`函数初始化Java虚拟机(JVM),然后通过`FindClass`查找Java接口类,使用`GetMethodID`获取接口方法的ID,最后通过`CallObjectMethod`或`CallNonvirtualObjectMethod`来调用Java接口。 5. **传递...
本篇将详细讲解如何利用Java调用WPS(金山办公软件)或PDFCreator的COM接口来实现doc到pdf的转换。我们将探讨以下知识点: 1. **什么是COM接口**: COM(Component Object Model)是微软提出的一种组件对象模型,...
在跨平台的软件开发中,有时我们需要在Java和C++之间进行交互,这通常是由于性能需求、使用已有的C++库或特定硬件接口的原因。Java Native Interface (JNI) 是Java平台提供的一种机制,允许Java代码和其他语言写的...
2种方法Java调用新浪微博接口示例,一种是不使用任何Sdk自己实现Oauth授权,然后实现简单的发布微博功能,另一个是使用weibo4j-oauth2这个SDK做一个简单的抢沙发工具,全部代码都有详细的注释,有问题可以通过以下...
要在Java中使用Axis2调用Web服务,首先需要在项目中添加Axis2的依赖库。这可以通过Maven或者直接下载jar包到项目的类路径中实现。然后,使用wsimport工具生成客户端 stubs,这些stubs将根据WSDL文件自动创建客户端...
总结一下,Java RPC调用涉及服务接口定义、数据序列化、网络通信、服务注册与发现以及调用处理等多个环节。通过理解这些概念和技术,我们可以更好地理解和实现Java中的RPC调用。在"RpcTest"这个示例中,我们可以深入...
本文将详细解析这些关键概念,并提供如何使用Java后台来对接百度搜索接口的方法。 首先,我们需要理解“百度搜索接口”。百度作为中国最大的搜索引擎,提供了API供开发者获取搜索结果数据。这个接口通常被称为百度...
本项目涉及的"java调用C++动态链接库dll接口"是解决这种跨语言交互问题的一种方法,主要利用了Java Native Interface(JNA)这一技术。 JNA是Java平台的标准库,它允许Java代码直接调用本机库(如DLL或.so文件)的...
本文将详细介绍如何使用Java语言结合XFire框架来实现对WebService接口的调用。文中将涵盖从服务端到客户端的整个开发流程,包括环境搭建、服务端接口的定义与发布、以及客户端的调用等关键步骤。 #### 二、环境准备...
Java连接RFC(Remote ...总之,标题和描述中的例子提供了使用Java连接SAP RFC的实用示例,这对于任何需要集成SAP的Java开发者来说都是宝贵的资源。通过学习和理解这些代码,可以更好地掌握Java与SAP RFC的交互技术。
Java在Linux环境中调用SAP RFC接口涉及到的关键技术点包括Java与SAP的集成、Linux系统下的动态链接库(.so文件)以及SAP的RFC(远程功能调用)技术。这里将详细介绍这些知识点。 首先,SAP RFC是SAP提供的一种通信...
InvokeHelper.java文件通常是用来封装调用金蝶接口的具体逻辑。在这个类中,开发者可能定义了一系列静态方法,用于构建HTTP请求,设置请求参数,如金蝶系统的URL、认证信息、请求头以及请求体。这些方法可能会使用...