zoukankan      html  css  js  c++  java
  • xmlrpc实现bugzilla api调用(无会话保持功能,单一接口请求)

    xmlrpc实现bugzilla4   xmlrpc api调用(无会话保持功能,单一接口请求),如需会话保持,请参考我的另外一篇随笔(bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能 (2015-06-08 18:53))

    第一步: 在pom.xml中导入 (如果不是maven工程,直接去下载jar包引入即可)

    <dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.xml.rpc</artifactId>
    <version>3.2-b06</version>
    </dependency>

    第二步: 新建一个类XmlRPCUtil.java

    import java.net.URL;
    import java.security.cert.X509Certificate;
    import java.util.HashMap;

    import javax.net.ssl.HostnameVerifier;
    import javax.net.ssl.HttpsURLConnection;
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSession;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;

    import org.apache.xmlrpc.client.XmlRpcClient;
    import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;


    public class XmlRPCUtil
    {

    public static void main(String[] args)

    {
    try
    {

    //注意https://bugzilla.tools.vipshop.com/bugzilla/这部分的URL要更换成你自己的域名地址,还有bugzilla的账户和密码
    String url = "https://bugzilla.tools.vipshop.com/bugzilla/xmlrpc.cgi";
    String method = "User.login";

    // 针对ssl的https请求做特殊处理
    initSSL();

    login(url, method);
    }
    catch (Exception e0)
    {
    e0.printStackTrace();
    }

    }

    public static void login(String url, String method)
    throws Exception
    {

    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(new URL(url));
    config.setEnabledForExtensions(true);

    XmlRpcClient client = new XmlRpcClient();
    client.setConfig(config);

    // 调用bugzilla的User.login实现登陆,请求有三个参数login password remember(可选)
    String login = new String("你的bugzilla账号");
    String password = new String("你的bugzilla密码");

    HashMap<String, Object> parameters = new HashMap<String, Object>();
    parameters.put("login", login);
    parameters.put("password", password);

    Object[] params = new Object[] {parameters};
    Object result = (Object)client.execute(method, params);

    System.out.println(result.toString());

    }

    public static void initSSL()
    throws Exception
    {

    // Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager()
    {
    public X509Certificate[] getAcceptedIssuers()
    {
    return null;
    }

    public void checkClientTrusted(X509Certificate[] certs, String authType)
    {
    // Trust always
    }

    public void checkServerTrusted(X509Certificate[] certs, String authType)
    {
    // Trust always
    }
    }};

    // Install the all-trusting trust manager
    SSLContext sc = SSLContext.getInstance("SSL");
    // Create empty HostnameVerifier
    HostnameVerifier hv = new HostnameVerifier()
    {
    public boolean verify(String arg0, SSLSession arg1)
    {
    return true;
    }
    };

    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    HttpsURLConnection.setDefaultHostnameVerifier(hv);

    }

    }

    第三步: 在该类里运行application即可看到输出值

    本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以加我QQ 1922003019或者直接发送QQ邮件给我沟通   

    sea  2015  中国:广州:VIP

    本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通 Testner创始人(testner.club) Sea
  • 相关阅读:
    网页结构的简介和Xpath语法的入门教程
    (原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题
    (原创)WinForm中莫名其妙的小BUG——RichTextBox自动选择字词问题
    Docker(1)概述
    Docker(2)centos7.X下安装
    Docker(5) docker部署nginx
    Docker(3)阿里云镜像加速
    Docker(4)docker常用命令
    Docker学习路线
    weblogic重要漏洞记录
  • 原文地址:https://www.cnblogs.com/sea520/p/4561734.html
Copyright © 2011-2022 走看看