ERPDocking.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. package utility;
  2. import beans.uploaderpdata.UploadDataToERP_HY;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import common.Controller;
  6. import common.YosException;
  7. import common.data.Row;
  8. import common.data.Rows;
  9. import common.data.SQLFactory;
  10. import org.dom4j.Document;
  11. import utility.tools.WebRequest;
  12. import java.io.BufferedReader;
  13. import java.io.IOException;
  14. import java.io.InputStreamReader;
  15. import java.io.PrintWriter;
  16. import java.net.CookieHandler;
  17. import java.net.CookieManager;
  18. import java.net.HttpURLConnection;
  19. import java.net.URL;
  20. import java.nio.charset.StandardCharsets;
  21. import java.util.HashMap;
  22. public class ERPDocking {
  23. public static boolean loginstatus = false;
  24. public ERPDocking() {
  25. // try {
  26. // login();
  27. // } catch (YosException e) {
  28. // System.err.println(e.getMessage());
  29. // }
  30. }
  31. /*
  32. crm登陆
  33. */
  34. // private void login() throws YosException {
  35. // if (!loginstatus) {
  36. // /*
  37. // 自动保存cookie
  38. // */
  39. // CookieManager manager = new CookieManager();
  40. // CookieHandler.setDefault(manager);
  41. // String s = new WebRequest().doPost("username=yosAdmin&password=yosAdmin123", "http://crm.meida.com/dmsService/ext/partner/login");
  42. // JSONObject object = JSONObject.parseObject(s);
  43. // if (object.getIntValue("code") == 1) {
  44. // loginstatus = true;
  45. // } else {
  46. // loginstatus = false;
  47. // }
  48. // }
  49. // }
  50. /**
  51. * 获取erp物料档案
  52. * @param begindate
  53. * @param pagerows
  54. * @param pagenum
  55. * @return
  56. * @throws YosException
  57. */
  58. public JSONArray getErpItemRows(String begindate, int pagerows, int pagenum) throws YosException {
  59. JSONObject object= new JSONObject();
  60. JSONObject objectdetail= new JSONObject();
  61. objectdetail.put("fstatus", "审核");
  62. objectdetail.put("fmodel", "");
  63. objectdetail.put("fitemname", "");
  64. objectdetail.put("fitemclsnum", "");
  65. objectdetail.put("fitemnos", new JSONArray());
  66. objectdetail.put("pagerows", pagerows);
  67. objectdetail.put("pagenum", pagenum);
  68. objectdetail.put("changedateBeg", begindate);
  69. object.put("access_token","basicDrp");
  70. object.put("classname","Titem");
  71. object.put("method","queryPage");
  72. object.put("content",objectdetail);
  73. HashMap<String, String> map = new HashMap<>();
  74. map.put("content-Type", "application/json");
  75. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  76. JSONObject resultobject = JSONObject.parseObject(result);
  77. if(resultobject.getString("errcode").equals("0")){
  78. return resultobject.getJSONObject("results").getJSONArray("list");
  79. }else {
  80. return new JSONArray();
  81. }
  82. }
  83. /**
  84. *查询Erp库存
  85. * @param pagerows
  86. * @param pagenum
  87. * @param fitemnos
  88. * @return
  89. * @throws YosException
  90. */
  91. public JSONArray getErpIcinvbalRows( int pagerows, int pagenum,JSONArray fitemnos) throws YosException {
  92. {
  93. JSONObject object= new JSONObject();
  94. JSONObject objectdetail= new JSONObject();
  95. objectdetail.put("fstockno", "01");
  96. objectdetail.put("fmodel", "");
  97. objectdetail.put("fitemname", "");
  98. objectdetail.put("fitemclsnum", "");
  99. objectdetail.put("fitemnos", fitemnos);
  100. objectdetail.put("pagerows", pagerows);
  101. objectdetail.put("pagenum", pagenum);
  102. object.put("access_token","basicDrp");
  103. object.put("classname","Icinvbal");
  104. object.put("method","queryPage");
  105. object.put("content",objectdetail);
  106. HashMap<String, String> map = new HashMap<>();
  107. map.put("content-Type", "application/json");
  108. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  109. JSONObject resultobject = JSONObject.parseObject(result);
  110. if(resultobject.getString("errcode").equals("0")){
  111. return resultobject.getJSONObject("results").getJSONArray("list");
  112. }else {
  113. return new JSONArray();
  114. }
  115. }
  116. }
  117. /**
  118. * 创建Erp发货单
  119. * @param dispatchRow
  120. * @param dispatchItems
  121. * @return
  122. * @throws YosException
  123. */
  124. public String createErpSainvoice(Row dispatchRow, Rows dispatchItems,Controller controller,long sa_dispatchid) throws YosException {
  125. {
  126. JSONObject object= new JSONObject();
  127. JSONObject objectdetail= new JSONObject();
  128. JSONArray jsonArray =new JSONArray();
  129. object.put("access_token","basicDrp");
  130. object.put("classname","Sainvoice");
  131. object.put("method","createSainvoice");
  132. objectdetail.put("finvonum",dispatchRow.getString("billno"));
  133. objectdetail.put("fagentnum",dispatchRow.getString("agentnum"));
  134. objectdetail.put("fagentname",dispatchRow.getString("enterprisename"));
  135. objectdetail.put("fsonum",dispatchRow.getString("sonum"));
  136. objectdetail.put("fdate",dispatchRow.getString("billdate"));
  137. objectdetail.put("fnotes",dispatchRow.getString("remarks"));
  138. objectdetail.put("fcontact",dispatchRow.getString("name"));
  139. objectdetail.put("fmobilephone",dispatchRow.getString("phonenumber"));
  140. objectdetail.put("faddress",dispatchRow.getString("address"));
  141. if(dispatchItems.isNotEmpty()){
  142. for (Row row:dispatchItems) {
  143. JSONObject jsonObject=new JSONObject();
  144. jsonObject.put("fsonum", row.getString("sonum"));
  145. jsonObject.put("fsorownum", row.getString("sorowno"));
  146. jsonObject.put("fprodnum", row.getString("itemno"));
  147. jsonObject.put("fbatchbnum", row.getString("batchno"));
  148. jsonObject.put("frownum", row.getString("rowno"));
  149. jsonObject.put("fqty", row.getString("qty"));
  150. jsonObject.put("fprice", row.getString("price"));
  151. jsonObject.put("fremarks", row.getString("remarks"));
  152. jsonArray.add(jsonObject);
  153. }
  154. }
  155. objectdetail.put("details",jsonArray);
  156. object.put("content",objectdetail);
  157. HashMap<String, String> map = new HashMap<>();
  158. map.put("content-Type", "application/json");
  159. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  160. JSONObject resultobject = JSONObject.parseObject(result);
  161. saveLog(controller,"sa_dispatch",sa_dispatchid,"创建erp发货单",object.toString(),resultobject,dispatchRow.getString("billno"));
  162. if(resultobject.getString("errcode").equals("0")){
  163. return "true";
  164. }else {
  165. return resultobject.getString("errmsg");
  166. }
  167. }
  168. }
  169. /**
  170. * 查询Erp发货单(单个)
  171. * @param billno
  172. * @return
  173. * @throws YosException
  174. */
  175. public JSONArray queryErpSainvoice(String billno) throws YosException {
  176. {
  177. JSONObject object= new JSONObject();
  178. JSONObject objectdetail= new JSONObject();
  179. object.put("access_token","basicDrp");
  180. object.put("classname","Sainvoice");
  181. object.put("method","queryOne");
  182. objectdetail.put("finvonum",billno);
  183. object.put("content",objectdetail);
  184. HashMap<String, String> map = new HashMap<>();
  185. map.put("content-Type", "application/json");
  186. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  187. JSONObject resultobject = JSONObject.parseObject(result);
  188. System.out.println(resultobject);
  189. if(resultobject.getString("errcode").equals("error")){
  190. return new JSONArray();
  191. }else {
  192. return resultobject.getJSONObject("results").getJSONArray("details");
  193. }
  194. }
  195. }
  196. /**
  197. * 查询Erp发货单(批量)
  198. * @param pagerows
  199. * @param pagenum
  200. * @param finvonums
  201. * @param fagentnum
  202. * @param fsonum
  203. * @param fstatus
  204. * @param onlyNeedClosed
  205. * @return
  206. * @throws YosException
  207. */
  208. public JSONArray queryErpSainvoices(int pagerows, int pagenum,JSONArray finvonums,String fagentnum,String fsonum,String fstatus,boolean onlyNeedClosed) throws YosException {
  209. {
  210. JSONObject object= new JSONObject();
  211. JSONObject objectdetail= new JSONObject();
  212. object.put("access_token","basicDrp");
  213. object.put("classname","Sainvoice");
  214. object.put("method","queryPage");
  215. objectdetail.put("pagenum",pagenum);
  216. objectdetail.put("pagerows",pagerows);
  217. objectdetail.put("finvonums",finvonums);
  218. objectdetail.put("fagentnum",fagentnum);
  219. objectdetail.put("fsonum",fsonum);
  220. objectdetail.put("fstatus",fstatus);
  221. objectdetail.put("onlyNeedClosed",onlyNeedClosed);
  222. object.put("content",objectdetail);
  223. HashMap<String, String> map = new HashMap<>();
  224. map.put("content-Type", "application/json");
  225. System.out.println(object.toString());
  226. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  227. JSONObject resultobject = JSONObject.parseObject(result);
  228. System.out.println(resultobject);
  229. if(resultobject.getString("errcode").equals("error")){
  230. return new JSONArray();
  231. }else {
  232. return resultobject.getJSONObject("results").getJSONArray("list");
  233. }
  234. }
  235. }
  236. /**
  237. * 关闭Erp发货单
  238. * @param billno
  239. * @param isManual
  240. * @return
  241. * @throws YosException
  242. */
  243. public String closeErpSainvoice(String billno, boolean isManual,Controller controller,long sa_dispatchid) throws YosException {
  244. {
  245. JSONObject object= new JSONObject();
  246. JSONObject objectdetail= new JSONObject();
  247. object.put("access_token","basicDrp");
  248. object.put("classname","Sainvoice");
  249. object.put("method","closeSainvoice");
  250. objectdetail.put("finvonum",billno);
  251. objectdetail.put("isManual",isManual);
  252. object.put("content",objectdetail);
  253. HashMap<String, String> map = new HashMap<>();
  254. map.put("content-Type", "application/json");
  255. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  256. JSONObject resultobject = JSONObject.parseObject(result);
  257. saveLog(controller,"sa_dispatch",sa_dispatchid,"关闭发货单",object.toString(),resultobject,billno);
  258. if(resultobject.getString("errcode").equals("0")){
  259. return "true";
  260. }else {
  261. return resultobject.getString("errmsg");
  262. }
  263. }
  264. }
  265. /**
  266. * 创建Erp退/换货单
  267. * @param aftersalesmagRow
  268. * @param aftersalesmagItems
  269. * @return
  270. * @throws YosException
  271. */
  272. public String createErpSareturn(Row aftersalesmagRow, Rows aftersalesmagItems,Controller controller,long sa_aftersalesmagid) throws YosException {
  273. {
  274. JSONObject object= new JSONObject();
  275. JSONObject objectdetail= new JSONObject();
  276. JSONArray jsonArray =new JSONArray();
  277. object.put("access_token","basicDrp");
  278. object.put("classname","Sareturn");
  279. object.put("method","createSareturn");
  280. objectdetail.put("freturnnum",aftersalesmagRow.getString("billno"));
  281. objectdetail.put("fagentnum",aftersalesmagRow.getString("agentnum"));
  282. objectdetail.put("fagentname",aftersalesmagRow.getString("enterprisename"));
  283. objectdetail.put("faccclsnum","01");
  284. objectdetail.put("fdate",aftersalesmagRow.getString("billdate"));
  285. objectdetail.put("fnotes",aftersalesmagRow.getString("reason"));
  286. if(aftersalesmagRow.getString("type").equals("退货单")){
  287. objectdetail.put("freturntype","退货");
  288. }else if(aftersalesmagRow.getString("type").equals("换货单")){
  289. objectdetail.put("freturntype","换货");
  290. }
  291. if(aftersalesmagItems.isNotEmpty()){
  292. for (Row row:aftersalesmagItems) {
  293. JSONObject jsonObject=new JSONObject();
  294. jsonObject.put("fprodnum", row.getString("itemno"));
  295. jsonObject.put("fbatchbnum", row.getString("batchno"));
  296. jsonObject.put("fqty", row.getString("qty"));
  297. jsonObject.put("fprice", row.getString("price"));
  298. jsonObject.put("fremarks", row.getString("reason"));
  299. jsonArray.add(jsonObject);
  300. }
  301. }
  302. objectdetail.put("details",jsonArray);
  303. object.put("content",objectdetail);
  304. HashMap<String, String> map = new HashMap<>();
  305. map.put("content-Type", "application/json");
  306. System.out.println(object.toString());
  307. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  308. JSONObject resultobject = JSONObject.parseObject(result);
  309. saveLog(controller,"sa_aftersalesmag",sa_aftersalesmagid,"创建erp退/换货单",object.toString(),resultobject,aftersalesmagRow.getString("billno"));
  310. if(resultobject.getString("errcode").equals("0")){
  311. return "true";
  312. }else {
  313. return resultobject.getString("errmsg");
  314. }
  315. }
  316. }
  317. /**
  318. * 查询Erp退/换货单(单个)
  319. * @param billno
  320. * @return
  321. * @throws YosException
  322. */
  323. public JSONArray queryErpSareturn(String billno) throws YosException {
  324. {
  325. JSONObject object= new JSONObject();
  326. JSONObject objectdetail= new JSONObject();
  327. object.put("access_token","basicDrp");
  328. object.put("classname","Sareturn");
  329. object.put("method","queryOne");
  330. objectdetail.put("freturnnum",billno);
  331. object.put("content",objectdetail);
  332. HashMap<String, String> map = new HashMap<>();
  333. map.put("content-Type", "application/json");
  334. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  335. JSONObject resultobject = JSONObject.parseObject(result);
  336. System.out.println(resultobject);
  337. if(resultobject.getString("errcode").equals("error")){
  338. return new JSONArray();
  339. }else {
  340. return resultobject.getJSONObject("results").getJSONArray("details");
  341. }
  342. }
  343. }
  344. /**
  345. * 查询Erpt退/换货单(批量)
  346. * @param pagerows
  347. * @param pagenum
  348. * @param freturnnums
  349. * @param fagentnum
  350. * @param fsonum
  351. * @param fstatus
  352. * @param onlyNeedClosed
  353. * @return
  354. * @throws YosException
  355. */
  356. public JSONArray queryErpSareturns(int pagerows, int pagenum,JSONArray freturnnums,String fagentnum,String fsonum,String freturntype,String fstatus,boolean onlyNeedClosed) throws YosException {
  357. {
  358. JSONObject object= new JSONObject();
  359. JSONObject objectdetail= new JSONObject();
  360. object.put("access_token","basicDrp");
  361. object.put("classname","Sareturn");
  362. object.put("method","queryPage");
  363. objectdetail.put("pagenum",pagenum);
  364. objectdetail.put("pagerows",pagerows);
  365. objectdetail.put("freturnnums",freturnnums);
  366. objectdetail.put("fagentnum",fagentnum);
  367. objectdetail.put("fsonum",fsonum);
  368. objectdetail.put("freturntype",freturntype);
  369. objectdetail.put("fstatus",fstatus);
  370. objectdetail.put("onlyNeedClosed",onlyNeedClosed);
  371. object.put("content",objectdetail);
  372. HashMap<String, String> map = new HashMap<>();
  373. map.put("content-Type", "application/json");
  374. System.out.println(object.toString());
  375. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  376. JSONObject resultobject = JSONObject.parseObject(result);
  377. System.out.println(resultobject);
  378. if(resultobject.getString("errcode").equals("error")){
  379. return new JSONArray();
  380. }else {
  381. return resultobject.getJSONObject("results").getJSONArray("list");
  382. }
  383. }
  384. }
  385. /**
  386. * 复核Erp退/换货单
  387. * @param billno
  388. * @param isManual
  389. * @return
  390. * @throws YosException
  391. */
  392. public String recheckErpSareturn(String billno, boolean isManual,Controller controller,long sa_aftersalesmagid) throws YosException {
  393. {
  394. JSONObject object= new JSONObject();
  395. JSONObject objectdetail= new JSONObject();
  396. object.put("access_token","basicDrp");
  397. object.put("classname","Sareturn");
  398. object.put("method","closeSareturn");
  399. objectdetail.put("freturnnum",billno);
  400. objectdetail.put("isManual",isManual);
  401. object.put("content",objectdetail);
  402. HashMap<String, String> map = new HashMap<>();
  403. map.put("content-Type", "application/json");
  404. String result = new WebRequest().doPost(object.toString(), "http://124.71.196.182:8001/rest/ws_v2/basicDrp", map);
  405. JSONObject resultobject = JSONObject.parseObject(result);
  406. saveLog(controller,"sa_aftersalesmag",sa_aftersalesmagid,"复核erp退/换货单",object.toString(),resultobject,billno);
  407. if(resultobject.getString("errcode").equals("0")){
  408. return "true";
  409. }else {
  410. return resultobject.getString("errmsg");
  411. }
  412. }
  413. }
  414. /**
  415. * 上传日志更新
  416. * @param controller
  417. * @param ownertable
  418. * @param ownerid
  419. * @param type
  420. * @param request
  421. * @param response
  422. * @param billno
  423. * @return
  424. */
  425. public static boolean saveLog(Controller controller, String ownertable, long ownerid, String type, String request,
  426. JSONObject response,String billno) {
  427. boolean issuccess = false;
  428. try {
  429. Rows rows = controller.dbConnect.runSqlQuery(
  430. "select * from sys_erpupdatelog where ownertable='" + ownertable + "' and ownerid=" + ownerid);
  431. SQLFactory sqlFactory;
  432. if (!rows.isEmpty()) {
  433. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志更新");
  434. sqlFactory.addParameter("sys_erpupdatelogid", rows.get(0).getLong("sys_erpupdatelogid"));
  435. } else {
  436. sqlFactory = new SQLFactory(new UploadDataToERP_HY(), "erp上传日志新增");
  437. sqlFactory.addParameter("sys_erpupdatelogid", controller.createTableID("sys_erpupdatelog"));
  438. }
  439. sqlFactory.addParameter("siteid", controller.siteid);
  440. sqlFactory.addParameter("userid", controller.userid);
  441. sqlFactory.addParameter("username", controller.username);
  442. sqlFactory.addParameter("ownerid", ownerid);
  443. sqlFactory.addParameter("ownertable", ownertable);
  444. sqlFactory.addParameter("type", type);
  445. sqlFactory.addParameter("request", request);
  446. sqlFactory.addParameter("response", response.toJSONString());
  447. if ("0".equals(response.getString("errcode"))) {
  448. sqlFactory.addParameter("erpbillno", billno);
  449. sqlFactory.addParameter("errmsg", "");
  450. issuccess = true;
  451. } else {
  452. sqlFactory.addParameter("erpbillno", "");
  453. sqlFactory.addParameter("errmsg", response.getString("errmsg"));
  454. issuccess = false;
  455. }
  456. sqlFactory.addParameter("status", response.getString("errcode"));
  457. controller.dbConnect.runSqlUpdate(sqlFactory);
  458. } catch (Exception e) {
  459. e.printStackTrace();
  460. }
  461. return issuccess;
  462. }
  463. // /**
  464. // * crm账号同步反馈
  465. // *
  466. // * @param id crm账号id
  467. // * @param succ 同步是否成功
  468. // * @param errmsg 错误原因
  469. // * @return
  470. // * @throws YosException
  471. // */
  472. // public boolean feedback1(long id, boolean succ, String errmsg) throws YosException {
  473. // JSONArray array = new JSONArray();
  474. // JSONObject object = new JSONObject();
  475. // object.put("id", id);
  476. // object.put("fupdateFlag", succ ? 99 : 4);
  477. // object.put("fupdateWarnLog", errmsg);
  478. // array.add(object);
  479. // HashMap<String, String> map = new HashMap<>();
  480. // map.put("content-Type", "application/json");
  481. //
  482. // System.out.println("feedback1:"+array.toString());
  483. // String result = new WebRequest().doPost(array.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/syncFupdateFlags", map);
  484. // JSONObject resultobject = JSONObject.parseObject(result);
  485. // return resultobject.getIntValue("code") == 1;
  486. // }
  487. // /**
  488. // * 获取指定的账号信息
  489. // *
  490. // * @param id crm账号id
  491. // * @return
  492. // * @throws YosException
  493. // */
  494. // public JSONObject getSingleAccount(long id) throws YosException {
  495. // String result = doGet("http://crm.meida.com/dmsService/ext/partner/userYos/getSynUserYos?id=" + id);
  496. // JSONObject resultobject = JSONObject.parseObject(result);
  497. // if (resultobject.getIntValue("code") == 20001) {
  498. // loginstatus = false;
  499. // throw new YosException("crm不在登陆状态");
  500. // } else {
  501. // return resultobject.getJSONObject("data");
  502. // }
  503. // }
  504. //
  505. // /**
  506. // * 更新账号有效期
  507. // *
  508. // * @param id crm账号id
  509. // * @param fexpireTime 账号到期时间
  510. // * @return
  511. // * @throws YosException
  512. // */
  513. // public boolean updateAccount(long id, String fexpireTime) throws YosException {
  514. // JSONObject object = new JSONObject();
  515. // object.put("id", id);
  516. // object.put("fexpireTime", fexpireTime);
  517. // HashMap<String, String> map = new HashMap<>();
  518. // map.put("content-Type", "application/json");
  519. // String result = new WebRequest().doPost(object.toString(), "http://crm.meida.com/dmsService/ext/partner/userYos/editSynUserYos", map);
  520. // JSONObject resultobject = JSONObject.parseObject(result);
  521. // if (resultobject.getIntValue("code") == 20001) {
  522. // loginstatus = false;
  523. // throw new YosException("crm不在登陆状态");
  524. // } else {
  525. // return resultobject.getIntValue("code") == 1;
  526. // }
  527. // }
  528. private String doGet(String url) {
  529. PrintWriter out = null;
  530. BufferedReader in = null;
  531. StringBuilder result = new StringBuilder();
  532. HttpURLConnection conn = null;
  533. try {
  534. URL realUrl = new URL(url);
  535. // 打开和URL之间的连接
  536. conn = (HttpURLConnection) realUrl.openConnection();
  537. conn.setRequestProperty("accept", "*/*");
  538. conn.setRequestProperty("connection", "Keep-Alive");
  539. conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  540. conn.setConnectTimeout(8000);
  541. in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
  542. String line;
  543. while ((line = in.readLine()) != null) {
  544. result.append(line);
  545. }
  546. } catch (Exception e) {
  547. e.printStackTrace();
  548. System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!");
  549. } finally {// 使用finally块来关闭输出流、输入流
  550. if (out != null) {
  551. out.close();
  552. out = null;
  553. }
  554. if (in != null) {
  555. try {
  556. in.close();
  557. } catch (IOException e) {
  558. e.printStackTrace();
  559. }
  560. in = null;
  561. }
  562. if (conn != null) {
  563. conn.disconnect();
  564. conn = null;
  565. }
  566. }
  567. return result.toString();
  568. }
  569. }