找准目标,不断前行

Java 请求webServce接口 带参数

public String  getWebServiceByParams(String param){   //获取基金缴付记录
        // Post请求的url,与get不同的是不需要带参数
        URL postUrl = null;
        try {
            postUrl = new URL(""); //***这里写webService接口地址
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 打开连接
        HttpURLConnection connection = null;
        try {
            connection = (HttpURLConnection) postUrl.openConnection();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }     
        // 设置是否向connection输出,因为这个是post请求,参数要放在
        // http正文内,因此需要设为true
        connection.setDoOutput(true);
        // Read from the connection. Default is true.
        connection.setDoInput(true);
        // 默认是 GET方式
        try {
            connection.setRequestMethod("POST");
        } catch (ProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }      
        // Post 请求不能使用缓存
        connection.setUseCaches(false);  
        //设置本次连接是否自动重定向 
        connection.setInstanceFollowRedirects(true);      
        // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
        // 意思是正文是urlencoded编码过的form参数
        connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
        // 要注意的是connection.getOutputStream会隐含的进行connect。
        try {
            connection.connect();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        DataOutputStream out = null;
        try {
            out = new DataOutputStream(connection
                    .getOutputStream());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 正文,正文内容其实跟get的URL中 '? '后的参数字符串一致
        String content = null;
        try {
            content = "createDate=" + URLEncoder.encode(param, "UTF-8");   //这里改成你的参数名字
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写到流里面
        try {
            out.writeBytes(content);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        //流用完记得关
        try {
            out.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //获取响应
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        String line = null;
        //        while ((line = reader.readLine()) != null){
        //            System.out.println("line---?"+line);
        //            
        //        }
        try {
            line = reader.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("line---?"+line);

        try {
            reader.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //该干的都干完了,记得把连接断了
        connection.disconnect();
        return line;
    }

 

posted @ 2018-06-29 16:11  kevinZhuZhu  阅读(992)  评论(0编辑  收藏  举报