亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

探討:使用httpClient在客戶端與服務器端傳輸對象參數的詳解

2019-11-26 16:04:28
字體:
來源:轉載
供稿:網友
昨天把httpClient的源代碼下載來看了一下。 稍微跟蹤了一下,最終還是使用java.net包的東西.不過封裝的實在是漂亮.寫程序方便多了。不過還是建議最好先熟悉net包下的東西.為了測試寫了個在客戶端和服務器段傳對象的代碼. 簡單的傳遞了一個字符串. 如果復雜點可以傳其他的對象,在參數里給出class name之類的信息.服務器端就可以使用反射來做一些實用的操作了。
客戶端:
復制代碼 代碼如下:

import java.io.IOException;
import java.io.Serializable;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
public class MyTest
{
    /**
     * @param args
     * @throws IOException
     * @throws ClassNotFoundException
     */
    public static void main(String[] args) throws IOException, ClassNotFoundException
    {
        String url = "http://localhost:8084/system/linantest";
        String queryString = "test=hello";
        String inputObj = " boy!";
        Serializable s = getObjFromServer(url, queryString, inputObj);
        System.out.println(s.toString());
    }
    /**
     * @param url
     * @param queryString 類似a=b&c=d 形式的參數
     *
     * @param inputObj   發送到服務器的對象。
     *    
     * @return 服務器返回到客戶端的對象。
     * @throws IOException
     */
    public static Serializable getObjFromServer(String url, String queryString, Serializable inputObj) throws IOException
    {
        HttpClient client = new HttpClient();
        PostMethod post = new PostMethod(url);
        post.setQueryString(queryString);
        post.setRequestHeader("Content-Type", "application/octet-stream");
        java.io.ByteArrayOutputStream bOut = new java.io.ByteArrayOutputStream(1024);
        java.io.ByteArrayInputStream bInput = null;
        java.io.ObjectOutputStream out = null;
        Serializable returnObj = null;
        try
        {
            out = new java.io.ObjectOutputStream(bOut);
            out.writeObject(inputObj);
            out.flush();
            out.close();
            out = null;
            bInput = new java.io.ByteArrayInputStream(bOut.toByteArray());
            RequestEntity re = new InputStreamRequestEntity(bInput);
            post.setRequestEntity(re);
            client.executeMethod(post);
            java.io.InputStream in = post.getResponseBodyAsStream();
            java.io.ObjectInputStream oInput = new java.io.ObjectInputStream(in);
            returnObj = (Serializable) oInput.readObject();
            oInput.close();
            oInput = null;
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (ClassNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally
        {
            if (out != null)
            {
                out.close();
                out = null;
            }
            if (bInput != null)
            {
                bInput.close();
                bInput = null;
            }
            //釋放連接
            post.releaseConnection();
        }
        return returnObj;
    }
}

服務器端的servlet
復制代碼 代碼如下:

package test.li;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.openjweb.eai.adapter.TimerDBAdapter;
public class TestServlet extends HttpServlet
{
    public TestServlet()
    {
        super();
    }
    /**
     * Destruction of the servlet. <br>
     */
    public void destroy()
    {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }
    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws Exception
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    {
        String test = request.getParameter("test");
        java.io.ObjectInputStream oi = null;
        java.io.ObjectOutputStream ot = null;
        try
        {
            oi = new java.io.ObjectInputStream(request.getInputStream());
            Object o = oi.readObject();
            oi.close();
            oi = null;

            String outObj = test + o.toString();
            ot = new java.io.ObjectOutputStream(response.getOutputStream());
            ot.writeObject(outObj);
            ot.flush();
            ot.close();
            ot = null;
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (ClassNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (oi != null)
                {
                    oi.close();
                    oi = null;
                }
                if (ot != null)
                {
                    ot.close();
                    ot = null;
                }
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        }
    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to
     * post.
     *
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        doGet(request, response);
    }
    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException
     *             if an error occure
     */
    public void init() throws ServletException
    {
        // Put your code here
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美专区国产专区| 国产精选久久久久久| 国产午夜精品美女视频明星a级| 色偷偷av亚洲男人的天堂| 韩国19禁主播vip福利视频| 久久99国产精品自在自在app| 国产成人福利夜色影视| 亚洲欧美日韩第一区| 日韩在线观看视频免费| 欧美怡春院一区二区三区| 亚洲欧美一区二区三区四区| 91嫩草在线视频| 久久免费视频网| 九九热视频这里只有精品| 韩日精品中文字幕| 日韩精品中文字幕在线观看| 成人免费福利视频| 九九久久久久久久久激情| 久久久亚洲精品视频| 亚洲a区在线视频| 97视频人免费观看| 色偷偷88888欧美精品久久久| 日本人成精品视频在线| 亚洲欧洲在线视频| 日韩中文字幕在线视频| 亚洲国产精品成人va在线观看| 久久精品视频导航| 国产91ⅴ在线精品免费观看| 538国产精品一区二区在线| 久热爱精品视频线路一| 国产91免费观看| 国产精品国产三级国产aⅴ9色| 欧美黑人极品猛少妇色xxxxx| 日韩暖暖在线视频| 日韩精品视频观看| 亚洲欧洲美洲在线综合| 欧美一区三区三区高中清蜜桃| 国产日韩精品一区二区| 97超碰国产精品女人人人爽| 成人激情视频免费在线| 国产精品扒开腿做| 国产成人亚洲综合91精品| 日韩视频在线观看免费| 亚洲欧美另类人妖| 亚洲三级av在线| 九九热这里只有在线精品视| 欧美激情网站在线观看| 欧洲成人性视频| 欧美国产中文字幕| 国产精品永久免费| 成人午夜黄色影院| 中文字幕精品—区二区| 日韩精品极品在线观看播放免费视频| 国产成人亚洲综合| 久久人91精品久久久久久不卡| 国产日韩精品入口| 91av在线播放视频| 97av在线视频免费播放| 夜夜躁日日躁狠狠久久88av| 成人两性免费视频| 国产午夜精品美女视频明星a级| 亚洲精品日韩丝袜精品| 国产免费观看久久黄| 性夜试看影院91社区| 国语自产偷拍精品视频偷| 91极品女神在线| 色一情一乱一区二区| 亚洲一区二区三区在线免费观看| 免费av一区二区| 亚洲一区二区免费| 国产日本欧美视频| 国产69精品99久久久久久宅男| 日本韩国欧美精品大片卡二| 国产精品偷伦免费视频观看的| 亚洲精品视频播放| 国产精品r级在线| 九九热在线精品视频| 国内精品久久久久久久久| 久久久极品av| 91av视频在线播放| 欧美日韩精品中文字幕| 亚洲一区二区三区四区在线播放| 亚洲成人激情在线| 欧美日韩国产在线| 欧美中文字幕在线播放| 精品视频一区在线视频| 亚洲淫片在线视频| 欧美国产日韩视频| 国产日产欧美精品| 神马国产精品影院av| 91精品久久久久久久久久久久久| 亚洲视频在线播放| 国产精品青青在线观看爽香蕉| 九九热精品视频| 欧美激情在线观看视频| 精品在线欧美视频| 日韩男女性生活视频| 国产欧美日韩亚洲精品| 国产精品青青在线观看爽香蕉| 91精品国产91久久久久久久久| 亚洲国产欧美一区二区三区久久| 成人97在线观看视频| 成人午夜激情免费视频| 中文字幕亚洲情99在线| 色播久久人人爽人人爽人人片视av| 欧美午夜视频一区二区| 国产精品香蕉av| 精品精品国产国产自在线| 欧美疯狂做受xxxx高潮| 全球成人中文在线| 日韩免费观看在线观看| 欧美激情视频网站| 91网站免费观看| 欧美激情亚洲另类| 久久久欧美精品| 久久亚洲综合国产精品99麻豆精品福利| 欧美日韩在线视频首页| 91精品国产99| 久久久精品国产网站| 国产福利精品在线| 亚洲a∨日韩av高清在线观看| 亚洲天堂成人在线视频| 亚洲字幕在线观看| 欧美在线亚洲一区| 91精品在线影院| 国产视频久久久| 久久久精品在线| 国产精品亚洲自拍| 久久影视电视剧免费网站清宫辞电视| 在线观看久久av| 国产欧美韩国高清| 成人黄色av网站| 最近2019中文字幕在线高清| 亚洲一区二区中文| 欧美黄网免费在线观看| 国产精品久久久久秋霞鲁丝| 26uuu亚洲国产精品| 亚洲一区亚洲二区亚洲三区| 成人精品一区二区三区| 欧美一级免费看| 麻豆国产精品va在线观看不卡| 国产日本欧美一区二区三区在线| 亚洲奶大毛多的老太婆| 成人免费午夜电影| 66m—66摸成人免费视频| 九九九热精品免费视频观看网站| 国产伦精品免费视频| 日韩成人中文字幕在线观看| 91av视频在线| 欧美国产第一页| 久久综合亚洲社区| 国产午夜精品免费一区二区三区| 91久久久亚洲精品| 一区二区欧美日韩视频| 91精品国产网站| 亚洲国产精品成人va在线观看| 亚洲精品在线视频| 日韩中文字幕在线看| 亚洲中国色老太| 精品国产一区二区三区在线观看| 中文字幕av一区二区三区谷原希美| 色婷婷av一区二区三区久久| 成人久久久久爱| 九九热最新视频//这里只有精品|