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

  • 相关阅读:
    [转] 程序集和Dll的区别
    [转载] 节选自:2005年件我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训总结
    [分享]屏幕取色工具
    LINQ学习笔记
    XP系统 mscorsvw.exe进程 占CPU资源 开机加载网络连接很慢 解决方法
    [原创] ASP.NET中事件执行顺序
    CHARINDEX, INSTR
    [转载]如何为自己的网站设置二级域名?
    [转载] System.Threading.Timer类的TimerCallback 委托
    [转载]ASP.NET 2.0 页面事件执行顺序
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/12310708.html
Copyright © 2011-2022 走看看