java调用webserviceUrl

代码:

package com.test;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

/**
 * java访问webserviceUrl
 */
public class WebserviceUrlAccess {

    // login后保存返回的cookie,供下次连接时使用
    private String responseCookie;

    /**
     * 根据用户名密码登录远程webserviceUrl
     */
    public String login(String url, String jsonParam) {

        // 声明返回结果
        String result = "";

        BufferedReader reader = null;
        DataOutputStream out = null;

        try {
            URL postUrl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestMethod("POST"); // 设置访问类型
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestProperty("Content-Type", "application/json"); // 设置参数类型
            connection.setRequestProperty("Connection", "Keep-Alive");
            connection.connect();

            out = new DataOutputStream(connection.getOutputStream());
            out.writeBytes(jsonParam);
            out.flush();
            out.close();

            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 设置返回数据编码
            responseCookie = connection.getHeaderField("Set-Cookie");// 取到所用的Cookie

            // 读取返回结果
            String line;
            while ((line = reader.readLine()) != null) {
                result += line;
            }

            reader.close();
            connection.disconnect();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return result;
    }

    /**
     * 登录远程webserviceUrl后,进行查询操作
     */
    public String searchData(String url, String jsonParam) {
        // 声明返回结果
        String result = "";

        BufferedReader reader = null;
        DataOutputStream out = null;

        try {
            URL postUrl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
            connection.setRequestProperty("Cookie", responseCookie); // 设置login时返回的cookie
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestProperty("Content-Type", "application/json");
            connection.connect();

            out = new DataOutputStream(connection.getOutputStream());
            out.writeBytes(jsonParam);
            out.flush();
            out.close();

            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 设置返回数据编码

            String line;
            while ((line = reader.readLine()) != null) {
                result += line;
            }

            reader.close();
            connection.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return result;
    }

    /**
     * 使用示例
     */
    public static void main(String[] args) {

        WebserviceUrlAccess access = new WebserviceUrlAccess();

        // login
        String loginUrl = "webserviceUrl地址";
        Map<String, Object> loginParam = new HashMap<String, Object>();
        loginParam.put("user", "登录名"); // 需根据接口实际需要的参数而定
        loginParam.put("password", "登录密码");// 需根据接口实际需要的参数而定
        String loginJsonParam = JSONObject.fromObject(loginParam).toString();
        String resultLogin = access.login(loginUrl, loginJsonParam);

        // searchData
        String searchUrl = "webserviceUrl地址";
        Map<String, Object> searchParam = new HashMap<String, Object>();
        searchParam.put("fileds", "属性名");// 需根据接口实际需要的参数而定
        searchParam.put("date", "日期");// 需根据接口实际需要的参数而定
        String searchJsonParam = JSONObject.fromObject(searchParam).toString();
        String resultSearch = access.searchData(searchUrl, searchJsonParam);
    }
}
时间: 2024-07-30 08:00:34

java调用webserviceUrl的相关文章

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

java 调用 keytool 生成keystore 和 cer 证书

keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries)——只包含公钥 ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写 下面给出一

java调用phantomjs采集ajax加载生成的网页

java调用phantomjs采集ajax加载生成的网页 日前有采集需求,当我把所有的对应页面的链接都拿到手,准备开始根据链接去采集(写爬虫爬取)对应的终端页的时候,发觉用程序获取到的数据根本没有对应的内容,可是我的浏览器看到的内容明明是有的,于是浏览器查看源代码也发觉没有,此时想起该网页应该是ajax加载的.不知道ajax的小朋友可以去学下web开发啦. 采集ajax生成的内容手段不外乎两种.一种是通过http观察加载页面时候的请求,然后我们模仿该请求去得到对应的内容,第二种则是模仿浏览器行为

Java调用Linux命令(cd的处理)

一.Java调用Linux系统的命令非常简单 这是一个非常常用的调用方法示例: 1 public String executeLinuxCmd(String cmd) { 2 System.out.println("got cmd job : " + cmd); 3 Runtime run = Runtime.getRuntime(); 4 try { 5 Process process = run.exec(cmd); 6 InputStream in = process.getIn

JAVA调用Shell脚本

在实际项目中,Java有时候需要调用C写出来的东西,除了JNI以外,我认为一种比较好的方法是JAVA调用Shell.先把C写出来的make成可执行文件,然后再写一个shell脚本执行该可执行文件,最后是JAVA调用该shell脚本. JAVA调用很简单,例子如下: 首先是shell脚本 [plain] view plain copy print? #!/bin/sh echo Begin word cluster /home/felven/word2vec/word2vec -train /ho

ndk学习17: jni之Java调用C&C++

一.Hello World 1. 定义函数原型 native关键字定义的函数即为jni函数 2.生成头文件 切换到src目录执行: (这个过程可以写脚本自动完成,比如自动拷贝到jni目录) javah -jni 包名.类名 在根目录下生成: org_bing_testjni_MainActivity.h 3. 工程中添加jni代码 工程右键->添加native code->输入名字->finish 多了如下文 新建一个Application.mk,配置相关选项(详细查看ndk有关Appl

java调用c++ dll出现中文乱码

最近的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作.在调用中如果路径中包含有中文字符就会出现问题,程序运行就会中止.下面用一个小例子,来说明记录下解决的方法. java中传入一个字符串,调用c++代码将字符串输出 public class CommonUtil { static { System.loadLibrary("nativeTest"); } public native static void Print(String s

JAVA调用C语言写的SO文件

JAVA调用C语言写的SO文件 因为工作需要写一份SO文件,作为手机硬件IC读卡和APK交互的桥梁,也就是中间件,看了网上有说到JNI接口技术实现,这里转载了一个实例 1 // 用JNI实现 2 // 实例: 3 4 // 创建HelloWorld.java 5 class HelloWorld 6 { 7 private native void print(); 8 public static void main(String[] args) 9 { 10 new HelloWorld().p

Java 调用Mysql dump 备份数据库

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); try { String name = sdf.format(new Date()); String filePath = System.getProperty("user.dir") + "//" + name + ".sql"; // 系统执行器 Runtime rt = Runtime.getRu