1 package com.nextjoy.projects.usercenter.util.http; /** 2 * Created by Administrator on 2016/10/20. 3 */ 4 import org.apache.http.HttpResponse; 5 import org.apache.http.client.methods.HttpGet; 6 import org.apache.http.client.methods.HttpPost; 7 import org.apache.http.entity.StringEntity; 8 import org.apache.http.impl.client.DefaultHttpClient; 9 import org.apache.http.params.CoreConnectionPNames; 10 import org.apache.http.util.EntityUtils; 11 12 import java.io.IOException; 13 import java.net.URLDecoder; 14 15 public class HttpRequestUtils { 16 /** 17 * httpPost 18 * @param url 路径 19 * @param jsonParam 参数 20 * @return 21 */ 22 public static String httpPost(String url, String jsonParam){ 23 return httpPost(url, jsonParam, false); 24 } 25 26 /** 27 * post请求 28 * @param url url地址 29 * @param jsonParam 参数 30 * @param noNeedResponse 不需要返回结果 31 * @return 32 */ 33 public static String httpPost(String url, String jsonParam, boolean noNeedResponse){ 34 //post请求返回结果 35 DefaultHttpClient httpClient = new DefaultHttpClient(); 36 String res = ""; 37 HttpPost method = new HttpPost(url); 38 try { 39 httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 50000); 40 httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 50000); 41 if (null != jsonParam) { 42 //解决中文乱码问题 43 StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8"); 44 entity.setContentEncoding("UTF-8"); 45 entity.setContentType("application/json"); 46 method.setEntity(entity); 47 } 48 HttpResponse result = httpClient.execute(method); 49 url = URLDecoder.decode(url, "UTF-8"); 50 /**请求发送成功,并得到响应**/ 51 if (result.getStatusLine().getStatusCode() == 200) { 52 try { 53 /**读取服务器返回过来的json字符串数据**/ 54 res = EntityUtils.toString(result.getEntity()); 55 if (noNeedResponse) { 56 return null; 57 } 58 } catch (Exception e) { 59 System.out.println("post请求响应失败:" + url); 60 } 61 } 62 } catch (IOException e) { 63 System.out.println("post请求提交失败:" + url); 64 } 65 return res; 66 } 67 68 69 /** 70 * 发送get请求 71 * @param url 路径 72 * @return 73 */ 74 public static String httpGet(String url){ 75 //get请求返回结果 76 String res = ""; 77 try { 78 DefaultHttpClient client = new DefaultHttpClient(); 79 client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 50000); 80 client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 50000); 81 //发送get请求 82 HttpGet request = new HttpGet(url); 83 HttpResponse response = client.execute(request); 84 85 /**请求发送成功,并得到响应**/ 86 if (response.getStatusLine().getStatusCode() == 200) { 87 /**读取服务器返回过来的json字符串数据**/ 88 res = EntityUtils.toString(response.getEntity()); 89 url = URLDecoder.decode(url, "UTF-8"); 90 } else { 91 System.out.println("post请求提交失败:" + url); 92 } 93 } catch (IOException e) { 94 System.out.println("post请求提交失败:" + url); 95 } 96 return res; 97 } 98 99 public static void main(String[] args) { 100 String str = "{"receipt-data":"MIITygYJKoZIhvcNAQcCoIITuzCCE7cCAQExCzAJBgUrDgMCGgUAMIIDawYJKoZIhvcNAQcBoIIDXASCA1gxggNUMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQECAQEEAwIBADALAgEDAgEBBAMMATEwCwIBCwIBAQQDAgEAMAsCAQ4CAQEEAwIBeDALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMA0CAQ0CAQEEBQIDAa2yMA0CARMCAQEEBQwDMS4wMA4CAQkCAQEEBgIEUDI1MDAYAgEEAgECBBATuifw5XP6GoZIgBahDxWaMBsCAQACAQEEEwwRUHJvZHVjdGlvblNhbmRib3gwHAIBBQIBAQQUstsB Xk3UbkwRJ3bu9Z/okz749kwHgIBDAIBAQQWFhQyMDE4LTA0LTE5VDA4OjU5OjU4WjAeAgESAgEBBBYWFDIwMTMtMDgtMDFUMDc6MDA6MDBaMCACAQICAQEEGAwWam95Lk5leHRqb3lTREtEZW1vLmNvbTA9AgEHAgEBBDXidk/VrGzS8WSU1J0BDdgvRsqRp NrmWJCqzIiTczAUdadruCsIP6aH9wBRxaKXzzpwtcS zBYAgEGAgEBBFA8U1hKBsHQwUWPSU0ukesf8UF/BzYQ3bwsTslxhrNJQ9D94gIhanzhyf5QMBn/JnaWbvR hP6 4p3xcZ0XBWjawPBtq2s6ODN8ZzicKe/ctTCCAVECARECAQEEggFHMYIBQzALAgIGrAIBAQQCFgAwCwICBq0CAQEEAgwAMAsCAgawAgEBBAIWADALAgIGsgIBAQQCDAAwCwICBrMCAQEEAgwAMAsCAga0AgEBBAIMADALAgIGtQIBAQQCDAAwCwICBrYCAQEEAgwAMAwCAgalAgEBBAMCAQEwDAICBqsCAQEEAwIBATAMAgIGrgIBAQQDAgEAMAwCAgavAgEBBAMCAQAwDAICBrECAQEEAwIBADAXAgIGpgIBAQQODAxuZXh0Sm95UHJvZDEwGwICBqcCAQEEEgwQMTAwMDAwMDM5MTg1Mzk4MTAbAgIGqQIBAQQSDBAxMDAwMDAwMzkxODUzOTgxMB8CAgaoAgEBBBYWFDIwMTgtMDQtMTlUMDg6NTk6NThaMB8CAgaqAgEBBBYWFDIwMTgtMDQtMTlUMDg6NTk6NThaoIIOZTCCBXwwggRkoAMCAQICCA7rV4fnngmNMA0GCSqGSIb3DQEBBQUAMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MTExMzAyMTUwOVoXDTIzMDIwNzIxNDg0N1owgYkxNzA1BgNVBAMMLk1hYyBBcHAgU3RvcmUgYW5kIGlUdW5lcyBTdG9yZSBSZWNlaXB0IFNpZ25pbmcxLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXPgf0looFb1oftI9ozHI7iI8ClxCbLPcaf7EoNVYb/pALXl8o5VG19f7JUGJ3ELFJxjmR7gs6JuknWCOW0iHHPP1tGLsbEHbgDqViiBD4heNXbt9COEo2DTFsqaDeTwvK9HsTSoQxKWFKrEuPt3R YFZA1LcLMEsqNSIH3WHhUa iMMTYfSgYMR1TzN5C4spKJfV khUrhwJzguqS7gpdj9CuTwf0 b8rB9Typj1IawCUKdg7e/pn /8Jr9VterHNRSQhWicxDkMyOgQLQoJe2XLGhaWmHkBBoJiY5uB0Qc7AKXcVz0N92O9gt2Yge4 wHz KO0NP6JlWB7 IDSSMCAwEAAaOCAdcwggHTMD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMDQwHQYDVR0OBBYEFJGknPzEdrefoIr0TfWPNl3tKwSFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEeBgNVHSAEggEVMIIBETCCAQ0GCiqGSIb3Y2QFBgEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzAOBgNVHQ8BAf8EBAMCB4AwEAYKKoZIhvdjZAYLAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAA2mG9MuPeNbKwduQpZs0 iMQzCCX Bc0Y2 vQ 9GvwlktuMhcOAWd/j4tcuBRSsDdu2uP78NS58y60Xa45/H R3ubFnlbQTXqYZhnb4WiCV52OMD3P86O3GH66Z GVIXKDgKDrAEDctuaAEOR9zucgF/fLefxoqKm4rAfygIFzZ630npjP49ZjgvkTbsUxn/G4KT8niBqjSl/OnjmtRolqEdWXRFgRi48Ff9Qipz2jZkgDJwYyz I0AZLpYYMB8r491ymm5WyrWHWhumEL1TKc3GZvMOxx6GUPzo22/SGAGDDaSK zeGLUR2i0j0I78oGmcFxuegHs5R0UwYS/HE6gwggQiMIIDCqADAgECAggB3rzEOW2gEDANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTMwMjA3MjE0ODQ3WhcNMjMwMjA3MjE0ODQ3WjCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMo4VKbLVqrIJDlI6Yzu7F 4fyaRvDRTes58Y4Bhd2RepQcjtjn UC0VVlhwLX7EbsFKhT4v8N6EGqFXya97GP9q hUSSRUIGayq2yoy7ZZjaFIVPYyK7L9rGJXgA6wBfZcFZ84OhZU3au0Jtq5nzVFkn8Zc0bxXbmc1gHY2pIeBbjiP2CsVTnsl2Fq/ToPBjdKT1RpxtWCcnTNOVfkSWAyGuBYNweV3RY1QSLorLeSUheHoxJ3GaKWwo/xnfnC6AllLd0KRObn1zeFM78A7SIym5SFd/Wpqu6cWNWDS5q3zRinJ6MOL6XnAamFnFbLw/eVovGJfbs Z3e8bY/6SZasCAwEAAaOBpjCBozAdBgNVHQ4EFgQUiCcXCam2GGCL7Ou69kdZxVJUo7cwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFwcGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAYYwEAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAE/P71m LPWybC P7hOHMugFNahui33JaQy52Re8dyzUZ L9mm06WVzfgwG9sq4qYXKxr83DRTCPo4MNzh1HtPGTiqN0m6TDmHKHOz6vRQuSVLkyu5AYU2sKThC22R1QbCGAColOV4xrWzw9pv3e9w0jHQtKJoc/upGSTKQZEhltV/V6WId7aIrkhoxK6 JJFKql3VUAqa67SzCu4aCxvCmA5gl35b40ogHKf9ziCuY7uLvsumKV8wVjQYLNDzsdTJWk26v5yZXpT RN5yaZgem8 bQp0gF6ZuEujPYhisX4eOGBrr/TkJ2prfOv/TgalmcwHFGlXOxxioK0bA8MFR8wggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTAeFw0wNjA0MjUyMTQwMzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV7IsZid75S2z1B6siMALoGD74UAnTf0GomPnRymacJGsR0KO75Bsqwx VnnoMpEeLW9QWNzPLxA9NzhRp0ckZcvVdDtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7PULrBWFBnjwi0IPfLrCwgb3C2PwEwjLdDzw dPfMrSSgayP7OtbkO2V4c1ss9tTqt9A8OAJILsSEWLnTVPA3bYharo3GSR1NVwa8vQbP4 NwzeajTEV H0xrUJZBicR0YgsQg0GHM4qBsTBY7FoEMoxos48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOCAXowggF2MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjCCAREGA1UdIASCAQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUFBwICMIG2GoGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJKoZIhvcNAQEFBQADggEBAFw2mUwteLftjJvc83eb8nbSdzBPwR Fg4UbmT1HN/Kpm0COLNSxkBLYvvRzm 7SZA/LeU802KI Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r/FmnBQl8F0BWER5007eLIztHo9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol1dkP1mvUoiQjEfehrI9zgWDGG1sJL5Ky ERI8GA4nhX1PSZnIIozavcNgs/e66Mv VNqW2TAYzN39zoHLFbr2g8hDtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9k0IkEirHDx22TZxeY8hLgBdQqorV2uT80AkHN7B1dSExggHLMIIBxwIBATCBozCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIIDutXh eeCY0wCQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAASCAQBFrLcTbjO3f MD5UrL53KS6PuIkCp/JuLkuQN5NDnFiH/KfSbjrIh00Ml c5Gqdbyivw3SnDIEvWhlvHBnr3vYdt1KJig9uqQKbd/FaphptkmSFC/dSlaTKr4OY/jxmMaEkXq2q7i9DLgGAzeS40/oB Gql3hDIBfUUp5Y827mni/PE8KTPVq8qpNgLodcVRd7GjuFu7ABm8M4Ww6cZoTXOg0IvWH1bRQEjMULjFqxHket6jJeYzokjbDk29cbS43IelUUot7Q04q sTIig9ur3bmUUA4mi0sKcnyQO7a4Ul1HE0lMz6TJ THPElkeX1OOG1SeDFPABa10bpn80B5"}"; 101 String url = "https://sandbox.itunes.apple.com/verifyReceipt"; 102 String result = HttpRequestUtils.httpPost(url, str); 103 System.out.println(result); 104 } 105 }
注:需要httpclient.jar依赖包(这里是版本4.3以上)