package com.quincy; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.http.Consts; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; public class HttpComponentsTest extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html; charset=utf-8"); System.out.println("進入了Servlet"); submit(req,resp); } public void submit(HttpServletRequest req, HttpServletResponse resp){ System.out.println("進入了提交"); List<NameValuePair> formparams = new ArrayList<NameValuePair>(); //賣家支付寶帳戶 formparams.add(new BasicNameValuePair("WIDseller_email", "×××")); //訂單編號 formparams.add(new BasicNameValuePair("WIDout_trade_no", "20140527093355")); //訂單名稱 formparams.add(new BasicNameValuePair("WIDsubject", "書")); //付款金額 formparams.add(new BasicNameValuePair("WIDtotal_fee", "0.01")); //訂單描述 formparams.add(new BasicNameValuePair("WIDbody", "miaoqing buy a book")); //默認網銀 formparams.add(new BasicNameValuePair("WIDdefaultbank", "CCB-DEBIT")); //商品展現地址 formparams.add(new BasicNameValuePair("WIDshow_url", "http://www.xxx.com/myorder.html")); CloseableHttpClient httpclient = HttpClients.createDefault(); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8); HttpPost httppost = new HttpPost("http://localhost:8080/pay/alipayapi.jsp"); httppost.setEntity(entity); try { PrintWriter out = resp.getWriter(); HttpResponse httpResp = httpclient.execute(httppost); int statusCode = httpResp.getStatusLine().getStatusCode(); if(statusCode == 200) { out.println(EntityUtils.toString(httpResp.getEntity())); } }catch(Exception e) { e.printStackTrace(); }finally { httppost.releaseConnection(); } System.out.println("提交完畢"); } }