• post 方式提交XML文件调用接口


    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.methods.RequestEntity;
    import org.apache.commons.httpclient.methods.StringRequestEntity;
    
      
    
    
    public class Test {
    
     /**
      * @param args
      */
     public static void main(String[] args) throws Exception{
    
     
    
    //直接字符串拼接
      StringBuffer sb = new StringBuffer();
      sb.append("<app_ei_sync_req><enabler_id>pengxwtest</enabler_id><dev_id>pengxwtest</dev_id>" +
        "<app_id>pengxwtest</app_id><app_secret>pengxwtest</app_secret>" +
        "<app_status>2</app_status><app_level>0</app_level><app_ei><ei_id>1</ei_id>" +
        "<ei_id>2</ei_id><ei_id>3</ei_id></app_ei></app_ei_sync_req>");//xml数据存储
      String data = sb.toString();
      String url = "接口地址";
      HttpClient httpclient = new HttpClient();
            PostMethod post  = new PostMethod(url); 
            String info = null;
            try {  
                RequestEntity entity = new StringRequestEntity(data, "text/xml",  
                "iso-8859-1");  
                post.setRequestEntity(entity);  
                httpclient.executeMethod(post);
                int code = post.getStatusCode();  
                if (code == HttpStatus.SC_OK)  
                    info = new String(post.getResponseBodyAsString());  //接口返回的信息
            } catch (Exception ex) {  
                ex.printStackTrace();  
            } finally {  
                post.releaseConnection();  
            }  
      System.out.println(info);
      
     }
     
    
    //读取xml文件
    
    public class xmlTool(){
    
    InputStreamReader read = new InputStreamReader (new FileInputStream("f://aa.xml"),"UTF-8");
    
      StringBuffer sb = new StringBuffer();
     
         BufferedReader br = new BufferedReader(read);
         String row;
         while((row = br.readLine())!=null){
          sb.append(row.trim());
    
         }
         String data = sb.toString();
         String url = "http://localhost:9099/vtoss/cloudapi/rp_video_transcode_batch.do";
       HttpClient httpclient = new HttpClient();
             PostMethod post  = new PostMethod(url); 
             String info = null;
             try {  
                 RequestEntity entity = new StringRequestEntity(data, "text/xml",  
                 "UTF-8");  
                 post.setRequestEntity(entity);  
                 httpclient.executeMethod(post);
                 int code = post.getStatusCode();  
                 if (code == HttpStatus.SC_OK)  
                     info = new String(post.getResponseBodyAsString());  
             } catch (Exception ex) {  
                 ex.printStackTrace();  
             } finally {  
                 post.releaseConnection();  
             }  
             System.out.println(info);
    
     
    
    }
    }

     转向的处理

    private void postMethod(String url) throws IOException
     {     
      url = "http://www.newsmth.net/bbslogin2.php";
      PostMethod postMethod = new PostMethod(url);
      // 填入各个表单域的值
      NameValuePair[] data = { new NameValuePair("id", "herrapfel"),new NameValuePair("passwd", "") };
      // 将表单的值放入postMethod中
      postMethod.setRequestBody(data);
      // 执行postMethod
      int statusCode = httpClient.executeMethod(postMethod);
      System.out.println(" status code:" + statusCode);
      // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
     
    
     
    
    if(statusCode == HttpStatus.SC_OK)
      {
       StringBuffer contentBuffer = new StringBuffer();
       InputStream in = postMethod.getResponseBodyAsStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(in,postMethod.getResponseCharSet()));
                String inputLine = null;
                while((inputLine = reader.readLine()) != null)
                {
                 contentBuffer.append(inputLine);
                 System.out.println("input line:"+ inputLine);
                 contentBuffer.append("/n");
                }
                in.close();
    
      }
      else if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) 
      {
          // 从头中取出转向的地址
          Header locationHeader = postMethod.getResponseHeader("location");
          String location = null;
          if (locationHeader != null) 
          {
           location = locationHeader.getValue();
           System.out.println("The page was redirected to:" + location);
          } 
          else 
          {
           System.err.println("Location field value is null.");
          }
      }
    
     }

    从文件读取 

    import java.io.File;
    import java.io.FileInputStream;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    /**
     * 用来演示提交XML格式数据的例子
     */
    public class PostXMLClient {
        public static void main(String[] args) throws Exception {
            File input = new File(“test.xml”);
            PostMethod post = new PostMethod(“http://localhost:8080/httpclient/xml.jsp”);
            // 设置请求的内容直接从文件中读取
         post.setRequestBody(new FileInputStream(input));
            if (input.length() < Integer.MAX_VALUE) 
               post.setRequestContentLength(input.length());
            else           
               post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);
            // 指定请求内容的类型
         post.setRequestHeader("Content-type", "text/xml; charset=GBK");
            HttpClient httpclient = new HttpClient(); 
            int result = httpclient.executeMethod(post); 
            System.out.println("Response status code: " + result);
            System.out.println("Response body: ");
            System.out.println(post.getResponseBodyAsString());
            post.releaseConnection();
        }
    } 
  • 相关阅读:
    JAVA 的赋值运算符、比较运算符、逻辑运算符、三元运算符、引用数据类型、流程语句
    Java 的方向、安装、打印“HelloWorld”、注释、标识字、关键字、变量、
    oracle组函数、多表查询、分页、
    oracle 的单行函数
    JQ 的class类的操作 效果 遍历 内置遍历数组的函数 事件
    jquery的引入、入口函数、选择器、对内容的操作、对元素的操作、属性操作
    MySQL 查询习题详解
    oracle的基本查询
    数据库45道练习题
    数据库概念以及入门语句,增删改
  • 原文地址:https://www.cnblogs.com/fm168/p/3396041.html
Copyright © 2020-2023  润新知