httpclient發送無參數的post資料

來源:互聯網
上載者:User

標籤:httpclient

兩個問題:     1、httpclient如何發送一個沒有任何參數的post資料呢?     2、Web工程如何去接收一個無參數的post呢?
起因:     今天(2014.11.10)在開發中碰到了一個問題,介面提供方提供的介面是要求使用post方式發送資料的,心想這不超簡單的一個東西嗎?直接post過去不就是了,但是,提供的介面是沒有任何參數的,不是類似這種http://api.dutycode.com/data/parm=xxx這種介面,而是http://api.dutycode.com/data。這個地址直接接收post資料。     話說,當時瞬間心碎了,沒接觸過啊。。。。     但是,總歸是有解決辦法的,既然有這樣的介面來接收資料,那麼一定可以發送so
解決辦法:很簡單     實現代碼如下:     
public static void main(String[] args) throws Exception {            HttpClient client = HttpClients. createDefault();                        HttpPost post = new HttpPost("http://127.0.0.1/report/testPost" );                         //組裝一個 json串,用於發送            JSONObject jsonObj = new JSONObject();            jsonObj.put( "website" , "http://www.dutycode.com" );            jsonObj.put( "email" , "[email protected]" );                        StringEntity entity = new StringEntity(jsonObj.toJSONString());            entity.setContentEncoding( "UTF-8" );            entity.setContentType( "application/json" );//設定為 json資料                        post.setEntity(entity);                        HttpResponse response = client.execute(post);                        HttpEntity resEntity = response.getEntity();            String res = EntityUtils. toString(resEntity);                        System. out .println(res);      }

問題2 Web工程如何去接收一個無參數的post呢?
     既然能發送,那麼得想辦法實現服務端啊,要不然怎麼才能死心。
     so     測試代碼:(注,使用公司內部架構實現,但基本原理是一樣的)     
@Path ("testPost" ) public ActionResult getpost() throws Exception{            StringBuilder sb = new StringBuilder ();            InputStream is = getRequest().getInputStream();            BufferedInputStream bis = new BufferedInputStream(is);             byte [] buffer = new byte[1024];             int read = 0;             while ((read=bis.read(buffer)) != -1){                  sb.append( new String(buffer, 0, read, "UTF-8" ));            }                        System. out .println(sb.toString());             return outputStream("{msg:success}" );}

    原理很簡單,直接擷取到post過來的所有資料流

上面兩個結合起來一起測試的話,結果如下:     第一段代碼返回結果:          
{msg:success}
     第二段代碼返回結果:
{"email":"[email protected]","website":"http://www.dutycode.com"}


著作權:《攀爬蝸牛》 => 《httpclient發送無參數的post資料》
本文地址:http://www.dutycode.com/post-76.html
除非註明,文章均為 《攀爬蝸牛》 原創,歡迎轉載!轉載請註明本文地址,謝謝

httpclient發送無參數的post資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.