vertx post與get寫法


            vertx.createHttpClient(new HttpClientOptions().setKeepAlive(false)).request(HttpMethod.POST, "45.xxx.127.130", "/gogo", resp -> {
                                                                   ip或域名     域名或ip后的路勁
                resp.bodyHandler(buf -> {
                    JsonObject jsonObject = new JsonObject(buf.toString());
                    System.out.println(jsonObject);
                    System.out.println(jsonObject.getString("msg"));
                });
            }).exceptionHandler(ex -> {
                ex.printStackTrace();
                msg.fail(0, "請求額外失敗");
            }).putHeader("Content-Type","application/x-www-form-urlencoded").end("signMethod="+signMethod+"&signature="+signature+"&"+for_post);

POST方式和GET的區別就是把發送的數據和網頁地址分離開來。把數據放在HTTP協議的head部分,因此程序中多了一個 設置請求頭 ("Content-Type: application/x-www-form-urlencoded") 這個內容你還可以根據你的需要來改變,例如改為圖像,或者二進制文件等。

 

一、Form表單語法
在Form元素的語法中,EncType表明提交數據的格式 用 Enctype 屬性指定將數據回發到服務器時瀏覽器使用的編碼類型。 例如: application/x-www-form-urlencoded: 窗體數據被編碼為名稱/值對。這是標准的編碼格式。 multipart/form-data: 窗體數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分,這個一般文件上傳時用。 text/plain: 窗體數據以純文本形式進行編碼,其中不含任何控件或格式字符。
補充

二、常用的編碼方式
form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded。

1.x-www-form-urlencoded
當action為get時候,瀏覽器用x-www-form-urlencoded的編碼方式把form數據轉換成一個字串(name1=value1&name2=value2…),然后把這個字串append到url后面,用?分割,加載這個新的url。

2.multipart/form-data
當action為post時候,瀏覽器把form數據封裝到http body中,然后發送到server。 如果沒有type=file的控件,用默認的application/x-www-form-urlencoded就可以了。 但是如果有type=file的話,就要用到multipart/form-data了。瀏覽器會把整個表單以控件為單位分割,並為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name)等信息,並加上分割符(boundary)。

 

引用自 : https://blog.csdn.net/qq_28702545/article/details/51719199

 

 

 

-------------------------------------------------------------------------------------------------------------------

 

 

 get寫法1

            String for_get = "mchNo=" + mchNo + "&" +
                    "notifyUrl=" + notifyUrl + "&" +
                    "orderCode=" + orderCode + "&" +
                    "price=" + price + "&" +
                    "ts=" + ts + "&" +
                    "type=" + type + "&"+
                    "sign=" + sign;

            vertx.createHttpClient(new HttpClientOptions().setKeepAlive(false)).request(HttpMethod.GET, "www.xxxx.com", "/api/getQrcode?"+for_get, resp -> {
                resp.bodyHandler(buf -> {
                    if (params.getString("payWaySan_jhzf").equals("JHZF_zfb")) {

                        System.out.println(buf.toString());

                        JsonObject json = new JsonObject(buf.toString());

                        msg.reply(json.getString("payUrl"));
                    }
                });
            }).exceptionHandler(ex -> {
                ex.printStackTrace();
                msg.fail(0, "請求額外失敗");
            }).end();

 get寫法2

            String for_get = "p00_spid="+p00_spid+"&"+
                    "p01_paytype="+p01_paytype+"&"+
                    "p02_spbillno="+p02_spbillno+"&"+
                    "p03_money="+p03_money+"&"+
                    "p04_callbackurl="+p04_callbackurl+"&"+
                    "p05_returnurl="+p05_returnurl+"&"+
                    "p07_productname="+p07_productname+"&"+
                    "pn_sign="+sign;

            System.out.println(for_get);

            vertx.createHttpClient(new HttpClientOptions().setKeepAlive(false)).request(HttpMethod.GET,2188,"47.52.209.6", "/tongda/v6/pay", resp -> {
                resp.bodyHandler(buf -> {
                    System.out.println(resp.statusCode());
                    System.out.println("返回 ===== :"+buf.toString());

//                    JsonObject json = new JsonObject(buf.toString());
//
//                    if(json.getInteger("status") == 200){
//                        System.out.println(new JsonObject(buf.toString()).toString());
//                        msg.reply(json.getString("payUrl"));
//                    }else {
//                        msg.fail(0, "失敗");
//                    }

                });
            }).exceptionHandler(ex -> {
                ex.printStackTrace();
                msg.fail(0, "請求TongDa失敗");
            }).putHeader("Content-Type","application/x-www-form-urlencoded").end(for_get);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM