zoukankan      html  css  js  c++  java
  • 使用Java程序通过http post访问ABAP Netweaver服务器

    Created by Jerry Wang, last modified on Aug 20, 2014

    source code如下:

    import java.io.FileNotFoundException;
    import java.io.IOException;  
    import org.apache.commons.codec.binary.Base64;
    import org.apache.http.HttpEntity;  
    import org.apache.http.HttpResponse;  
    import org.apache.http.client.ClientProtocolException;  
    import org.apache.http.client.HttpClient;  
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.HttpMultipartMode;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
     
    @SuppressWarnings("deprecation")
    public class MyHTTPPost 
    {
     final private static String POST_PREFIX = <replace with your own application server url>;
     
     private static String getRequestURL(String str)
     {
     String url = POST_PREFIX + str;
            url = url + "&sid=" + Math.random();
             return url;
     }
     
     private static void sendHTTPPostRequest(String str) throws FileNotFoundException
     { 
     HttpClient httpclient = new DefaultHttpClient();
     String raw = "WANGJER:Saptest1"; 
     String encoded = Base64.encodeBase64String(raw.getBytes());
     
            HttpPost httppost = new HttpPost(getRequestURL(str));
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();        
            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            
            builder.addTextBody("firstName", "Jerry");
            builder.addTextBody("lastName", "Wang");
            try {
                httppost.addHeader("Content-Type","multipart/form-data; boundary=assdsfdffafasf");
                httppost.addHeader("User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
                httppost.addHeader("Authorization", "Basic " + encoded);  
                
                HttpResponse httpresponse = httpclient.execute(httppost);
                HttpEntity resEntity = httpresponse.getEntity();
                String response = EntityUtils.toString(resEntity);
                System.out.println(response);
            }
            catch (IOException e)
            {
             System.out.println(e.getLocalizedMessage());
             e.printStackTrace();
             System.out.println("error!");
            }
     }
     
     public static void main(String[] args) throws ClientProtocolException, IOException  
     {  
     sendHTTPPostRequest("a");
     }  
    }
    

    运行结果:
    application server会解析出Java program传入的http 请求中的"a", 然后从DB table scarr 中查找对应的记录,返回给Java side:

    <a href=’http://www.aa.com’ target=’_blank’>American Airlines</a><br /><a href=’http://www.aircanada.ca’ target=’_blank’>Air Canada</a><br /><a href=’http://www.airfrance.fr’ target=’_blank’>Air France</a><br /><a href=’http://www.alitalia.it’ target=’_blank’>Alitalia</a><br /><a href=’http://www.british-airways.com’ target=’_blank’>British Airways</a><br /><a href=’http://www.airpacific.com’ target=’_blank’>Air Pacific</a><br /><a href=’http://www.continental.com’ target=’_blank’>Continental Airlines</a><br /><a href=’http://www.delta-air.com’ target=’_blank’>Delta Airlines</a><br /><a href=’http://www.airberlin.de’ target=’_blank’>Air Berlin</a><br /><a href=’http://www.lufthansa.com’ target=’_blank’>Lufthansa</a><br /><a href=’http://www.laudaair.com’ target=’_blank’>Lauda Air</a><br /><a href=’http://www.jal.co.jp’ target=’_blank’>Japan Airlines</a><br /><a href=’http://www.nwa.com’ target=’_blank’>Northwest Airlines</a><br /><a href=’http://www.qantas.com.au’ target=’_blank’>Qantas Airways</a><br /><a href=’http://www.saa.co.za’ target=’_blank’>South African Air.</a><br /><a href=’http://www.singaporeair.com’ target=’_blank’>Singapore Airlines</a><br /><a href=’http://www.ual.com’ target=’_blank’>United Airlines</a>
    

    如果遇到server certificate问题,可以参考这个link的解决方案: http://code.naishe.in/2011/07/looks-like-article-no-more-unable-to.html

  • 相关阅读:
    Effective Java 19 Use interfaces only to define types
    Effective Java 18 Prefer interfaces to abstract classes
    Effective Java 17 Design and document for inheritance or else prohibit it
    Effective Java 16 Favor composition over inheritance
    Effective Java 15 Minimize mutability
    Effective Java 14 In public classes, use accessor methods, not public fields
    Effective Java 13 Minimize the accessibility of classes and members
    Effective Java 12 Consider implementing Comparable
    sencha touch SortableList 的使用
    sencha touch dataview 中添加 button 等复杂布局并添加监听事件
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/12310708.html
Copyright © 2011-2022 走看看