/**
*?@param?url?發送請求的?URL
*?@param?params?請求的參數集合
*?@return?遠程資源的響應結果
*/
private?static?String?sendPost(String?url,?Map
???????OutputStreamWriter?out?=?null;
???????BufferedReader?in?=?null;????????
???????StringBuilder?result?=?new?StringBuilder();?
???????try?{
???????????URL?realUrl?=?new?URL(url);
???????????HttpURLConnection?conn?=(HttpURLConnection)?realUrl.openConnection();
???????????//?發送POST請求必須設置如下兩行
???????????conn.setDoOutput(true);
???????????conn.setDoInput(true);
???????????//?POST方法
???????????conn.setRequestMethod("POST");
???????????//?設置通用的請求屬性
???????????conn.setRequestProperty("accept",?"*/*");
???????????conn.setRequestProperty("connection",?"Keep-Alive");
???????????conn.setRequestProperty("user-agent",?"Mozilla/4.0?(compatible;?MSIE?6.0;?Windows?NT?5.1;SV1)");
???????????conn.setRequestProperty("Content-Type",?"application/x-www-form-urlencoded");
???????????conn.connect();
???????????//?獲取URLConnection對象對應的輸出流
???????????out?=?new?OutputStreamWriter(conn.getOutputStream(),?"UTF-8");
???????????//?發送請求參數????????????
???????????if?(params?!=?null)?{
?????????????StringBuilder?param?=?new?StringBuilder();?
?????????????for?(Map.Entry
????????????????if(param.length()>0){
???????????????????param.append("&");
????????????????}?????????????????
????????????????param.append(entry.getKey());
????????????????param.append("=");
????????????????param.append(entry.getValue());??????????????????
????????????????//System.out.println(entry.getKey()+":"+entry.getValue());
?????????????}
?????????????//System.out.println("param:"+param.toString());
?????????????out.write(param.toString());
???????????}
???????????//?flush輸出流的緩衝
???????????out.flush();
???????????//?定義BufferedReader輸入流來讀取URL的響應
???????????in?=?new?BufferedReader(new?InputStreamReader(conn.getInputStream(),?"UTF-8"));
???????????String?line;
???????????while?((line?=?in.readLine())?!=?null)?{
???????????????result.append(line);
???????????}
???????}?catch?(Exception?e)?{????????????
???????????e.printStackTrace();
???????}
???????//使用finally塊來關閉輸出流、輸入流
???????finally{
???????????try{
???????????????if(out!=null){
???????????????????out.close();
???????????????}
???????????????if(in!=null){
???????????????????in.close();
???????????????}
???????????}
???????????catch(IOException?ex){
???????????????ex.printStackTrace();
???????????}
???????}
???????return?result.toString();
???}