{"id":4409,"date":"2019-05-13T22:46:45","date_gmt":"2019-05-13T14:46:45","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=4409"},"modified":"2019-05-13T22:46:45","modified_gmt":"2019-05-13T14:46:45","slug":"java%e4%b8%ad%e5%a6%82%e4%bd%95%e5%8f%91%e8%b5%b7http%e8%af%b7%e6%b1%82","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/4409.html","title":{"rendered":"Java\u4e2d\u5982\u4f55\u53d1\u8d77HTTP\u8bf7\u6c42"},"content":{"rendered":"\n<p>=Start=<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"id-\u6a21\u677f-\u7f18\u7531\uff1a\">\u7f18\u7531\uff1a<\/h4>\n\n\n\n<p>\u4e4b\u524d\u5728\u5b66\u4e60Java\u7684\u65f6\u5019\u5c31\u8bf4\u8981\u6574\u7406\u4e00\u7bc7\u5982\u4f55\u8fdb\u884cHTTP\u64cd\u4f5c\u7684\u6587\u7ae0\uff0c\u4e0d\u8fc7\u4e00\u76f4\u90fd\u6ca1\u6709\u5199\u597d\uff0c\u8fd9\u4e24\u5929\u521a\u597d\u60f3\u5230\u4e86\u9a8c\u8bc1\u7684\u65b9\u6cd5\uff0c\u6240\u4ee5\u6574\u4e2a\u8fc7\u7a0b\u5f88\u5feb\u5c31OK\u4e86\uff0c\u5728\u6b64\u8bb0\u5f55\u4e00\u4e0b\uff0c\u65b9\u4fbf\u4ee5\u540e\u53c2\u8003\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"id-\u6a21\u677f-\u6b63\u6587\uff1a\">\u6b63\u6587\uff1a<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"id-\u6a21\u677f-\u53c2\u8003\u89e3\u7b54\uff1a\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n\n\n\n<h6 class=\"wp-block-heading\">1\u3001\u4f7f\u7528 HttpURLConnection<\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">package com.ixyzero.learn.utils;<br><br>import javax.net.ssl.HttpsURLConnection;<br>import java.io.BufferedReader;<br>import java.io.DataOutputStream;<br>import java.io.InputStreamReader;<br>import java.net.HttpURLConnection;<br>import java.net.URL;<br><br>\/**<br> * Created by ixyzero on 2019\/5\/11.<br> *\/<br>public class HttpURLConnectionExample {<br><br>    private final String USER_AGENT = \"Mozilla\/5.0\";<br><br>    public static void main(String[] args) throws Exception {<br><br>        HttpURLConnectionExample http = new HttpURLConnectionExample();<br><br>        System.out.println(\"Testing 1 - Send Http GET request\");<br>        http.sendGet();<br><br>        System.out.println(\"\\nTesting 2 - Send Http POST request\");<br>        http.sendPost();<br><br>    }<br><br>    \/\/ HTTP GET request<br>    private void sendGet() throws Exception {<br><br>        String url = \"https:\/\/httpbin.org\/get?q=test\";<br><br>        URL obj = new URL(url);<br>        HttpURLConnection con = (HttpURLConnection) obj.openConnection();<br><br>        \/\/ optional default is GET<br>        con.setRequestMethod(\"GET\");<br><br>        \/\/add request header<br>        con.setRequestProperty(\"User-Agent\", USER_AGENT);<br><br>        int responseCode = con.getResponseCode();<br>        System.out.println(\"\\nSending 'GET' request to URL : \" + url);<br>        System.out.println(\"Response Code : \" + responseCode);<br><br>        BufferedReader in = new BufferedReader(<br>                new InputStreamReader(con.getInputStream()));<br>        String inputLine;<br>        StringBuffer response = new StringBuffer();<br><br>        while ((inputLine = in.readLine()) != null) {<br>            response.append(inputLine);<br>        }<br>        in.close();<br><br>        System.out.println(response.toString());<br>    }<br><br>    \/\/ HTTP POST request<br>    private void sendPost() throws Exception {<br><br>        String url = \"https:\/\/httpbin.org\/post\";<br>        URL obj = new URL(url);<br>        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();<br><br>        \/\/add reuqest header<br>        con.setRequestMethod(\"POST\");<br>        con.setRequestProperty(\"User-Agent\", USER_AGENT);<br>        con.setRequestProperty(\"Accept-Language\", \"en-US,en;q=0.5\");<br><br>        String urlParameters = \"sn=123&amp;id=12345\";<br><br>        \/\/ Send post request<br>        con.setDoOutput(true);<br>        DataOutputStream wr = new DataOutputStream(con.getOutputStream());<br>        wr.writeBytes(urlParameters);<br>        wr.flush();<br>        wr.close();<br><br>        int responseCode = con.getResponseCode();<br>        System.out.println(\"\\nSending 'POST' request to URL : \" + url);<br>        System.out.println(\"Post parameters : \" + urlParameters);<br>        System.out.println(\"Response Code : \" + responseCode);<br><br>        BufferedReader in = new BufferedReader(<br>                new InputStreamReader(con.getInputStream()));<br>        String inputLine;<br>        StringBuffer response = new StringBuffer();<br><br>        while ((inputLine = in.readLine()) != null) {<br>            response.append(inputLine);<br>        }<br>        in.close();<br><br>        System.out.println(response.toString());<br>    }<br><br>}<\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">2\u3001\u4f7f\u7528 HttpClient<\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">package com.ixyzero.learn.utils;<br><br>import org.apache.http.HttpResponse;<br>import org.apache.http.NameValuePair;<br>import org.apache.http.client.ClientProtocolException;<br>import org.apache.http.client.HttpClient;<br>import org.apache.http.client.entity.UrlEncodedFormEntity;<br>import org.apache.http.client.methods.HttpGet;<br>import org.apache.http.client.methods.HttpPost;<br>import org.apache.http.impl.client.HttpClientBuilder;<br>import org.apache.http.message.BasicNameValuePair;<br><br>import java.io.BufferedReader;<br>import java.io.IOException;<br>import java.io.InputStreamReader;<br>import java.io.UnsupportedEncodingException;<br>import java.util.ArrayList;<br>import java.util.HashMap;<br>import java.util.List;<br>import java.util.Map;<br><br>\/**<br> * Created by ixyzero.com on 2019\/5\/11.<br> *\/<br>public class HttpUtils {<br><br>    private static String getURL = \"http:\/\/httpbin.org\/get?q=test\";<br>    private static String postURL = \"https:\/\/httpbin.org\/post\";<br>    private static String USER_AGENT = \"Mozilla\/5.0\";<br>    private static int TIMEOUT = 50;<br><br>    public String httpGet(String url) {<br>        HttpClient client = HttpClientBuilder.create().build();<br>        HttpGet request = new HttpGet(url);<br>        request.addHeader(\"User-Agent\", USER_AGENT);<br>        StringBuffer result = new StringBuffer();<br><br>        try {<br>            HttpResponse response = client.execute(request);<br>            System.out.println(\"Response Code : \"<br>                    + response.getStatusLine().getStatusCode());<br><br>            BufferedReader rd = new BufferedReader(<br>                    new InputStreamReader(response.getEntity().getContent()));<br><br>            String line;<br>            while ((line = rd.readLine()) != null) {<br>                result.append(line);<br>            }<br>        } catch (IOException e) {<br>            e.printStackTrace();<br>        }<br><br>        return result.toString();<br>    }<br><br>    public String httpPost(String url, Map&lt;String, String&gt; mapParam) {<br>        StringBuffer result = new StringBuffer();<br><br>        HttpClient client = HttpClientBuilder.create().build();<br>        HttpPost post = new HttpPost(url);<br>        post.setHeader(\"User-Agent\", USER_AGENT);<br><br>        List&lt;NameValuePair&gt; urlParameters = new ArrayList&lt;&gt;();<br>        for (Map.Entry&lt;String, String&gt; entry : mapParam.entrySet()) {<br>            urlParameters.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));<br>        }<br><br>        try {<br>            post.setEntity(new UrlEncodedFormEntity(urlParameters));<br><br>            HttpResponse response = client.execute(post);<br>            System.out.println(\"Response Code : \"<br>                    + response.getStatusLine().getStatusCode());<br><br>            BufferedReader rd = new BufferedReader(<br>                    new InputStreamReader(response.getEntity().getContent()));<br>            String line;<br>            while ((line = rd.readLine()) != null) {<br>                result.append(line);<br>            }<br>        } catch (UnsupportedEncodingException e) {<br>            e.printStackTrace();<br>        } catch (ClientProtocolException e) {<br>            e.printStackTrace();<br>        } catch (IOException e) {<br>            e.printStackTrace();<br>        }<br><br>        return result.toString();<br>    }<br><br>    public static void main(String[] args) {<br>        HttpUtils httpUtils = new HttpUtils();<br>        String response;<br><br>        response = httpUtils.httpGet(getURL);<br>        System.out.println(String.format(\"URL: %s\\nResponse:\\n%s\\n\", getURL, response));<br><br>        Map&lt;String, String&gt; map = new HashMap&lt;String, String&gt;() {<br>            {<br>                put(\"name\", \"test\");<br>                put(\"age\", \"20\");<br>            }<br>        };<br>        System.out.println(map);<br>        response = httpUtils.httpPost(postURL, map);<br>        System.out.println(String.format(\"URL: %s\\nResponse:\\n%s\\n\", postURL, response));<br><br>    }<br>}<\/pre>\n\n\n\n<p>&amp;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;dependency&gt;<br>    &lt;groupId&gt;org.apache.httpcomponents&lt;\/groupId&gt;<br>    &lt;artifactId&gt;httpclient&lt;\/artifactId&gt;<br>    &lt;version&gt;4.4.1&lt;\/version&gt;<br>&lt;\/dependency&gt;<\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">3\u3001\u501f\u52a9&nbsp;<a href=\"https:\/\/httpbin.org\/\">https:\/\/httpbin.org\/<\/a>\u9a8c\u8bc1\u6548\u679c<\/h6>\n\n\n\n<p>\u8be5\u7f51\u7ad9\u4f1a\u628a\u4f60\u7ed9\u5b83\u53d1\u51fa\u7684\u8bf7\u6c42\u4fe1\u606f\u6253\u51fa\u6765\uff0c\u65b9\u4fbf\u4f60\u9a8c\u8bc1\u53c2\u6570\u548c\u8bbe\u7f6e\u662f\u5426\u6b63\u786e\uff0c\u4e0a\u9762\u7684POST\u4fe1\u606f\u5982\u4e0b\uff08\u5305\u542b\u8bf7\u6c42\u5185\u5bb9\u3001\u8bf7\u6c42\u5934\u4fe1\u606f\u3001\u5916\u7f51IP\u7b49\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{<br>  \"args\": {},<br>  \"data\": \"\",<br>  \"files\": {},<br>  \"form\": {<br>    \"age\": \"20\",<br>    \"name\": \"test\"<br>  },<br>  \"headers\": {<br>    \"Accept-Encoding\": \"gzip,deflate\",<br>    \"Content-Length\": \"16\",<br>    \"Content-Type\": \"application\/x-www-form-urlencoded\",<br>    \"Host\": \"httpbin.org\",<br>    \"User-Agent\": \"Mozilla\/5.0\"<br>  },<br>  \"json\": null,<br>  \"origin\": \"x1.x2.x3.x4, x1.x2.x3.x4\",<br>  \"url\": \"https:\/\/httpbin.org\/post\"<br>}<\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">4\u3001\u5982\u4f55\u89e3\u6790\u8fd4\u56de\u7684json\u6570\u636e<\/h6>\n\n\n\n<p>\u5728Java\u4e2d\u5904\u7406json\u6570\u636e\u65f6\uff0c\u6211\u4e00\u822c\u7528\u7684\u662fAlibaba\u7684fastjson\u5e93\uff0c\u6240\u4ee5\u8fd9\u91cc\u4e5f\u7528\u8fd9\u4e2a\u5e93\u7684\u76f8\u5173\u65b9\u6cd5\u8fdb\u884c\u8bf4\u660e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/ \u5f53response\u4e3ajson\u683c\u5f0f\u7684\u5b57\u7b26\u4e32\u65f6\uff0c\u76f4\u63a5\u5c06\u5176\u4f20\u7ed9JSONObject.parseObject\u65b9\u6cd5\u8fdb\u884c\u89e3\u6790\u5373\u53ef\u5f97\u5230\u5bf9\u5e94\u7684json\u5bf9\u8c61\nJSONObject jsonObj = JSONObject.parseObject(response);<\/pre>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"id-\u6a21\u677f-\u53c2\u8003\u94fe\u63a5\uff1a\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.mkyong.com\/java\/how-to-send-http-request-getpost-in-java\/\">Java\u7684HTTP GET\u548cPOST \u8bf7\u6c42<\/a>&nbsp;#<strong>\u5168\u9762\u3001\u8be6\u7ec6<\/strong><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/1359689\/how-to-send-http-request-in-java\">How to send HTTP request in java?<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/2793150\/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests\">How to use java.net.URLConnection to fire and handle HTTP requests<\/a>#<strong>\u975e\u5e38\u8be6\u7ec6\uff01<\/strong><br><a href=\"http:\/\/zetcode.com\/java\/getpostrequest\/\">http:\/\/zetcode.com\/java\/getpostrequest\/<\/a><\/li><li><a href=\"http:\/\/hc.apache.org\/httpcomponents-client-ga\/tutorial\/html\/\">HttpClient Tutorial<\/a>&amp;&nbsp;<a href=\"http:\/\/hc.apache.org\/httpcomponents-client-ga\/examples.html\">Examples<\/a><br><a href=\"http:\/\/hc.apache.org\/httpcomponents-client-ga\/tutorial\/html\/statemgmt.html#d5e576\">http:\/\/hc.apache.org\/httpcomponents-client-ga\/tutorial\/html\/statemgmt.html#d5e576<\/a><\/li><li><a href=\"https:\/\/chillyfacts.com\/java-send-http-getpost-request-and-read-json-response\/\">\u7528Java\u53d1\u8d77GET\/POST\u8bf7\u6c42\u5e76\u89e3\u6790\u8fd4\u56de\u7684json\u6570\u636e<\/a><br><a href=\"https:\/\/stackoverflow.com\/questions\/22816335\/java-httprequest-json-response-handling\">https:\/\/stackoverflow.com\/questions\/22816335\/java-httprequest-json-response-handling<\/a><\/li><\/ul>\n\n\n\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u4e4b\u524d\u5728\u5b66\u4e60Java\u7684\u65f6\u5019\u5c31\u8bf4\u8981\u6574\u7406\u4e00\u7bc7\u5982\u4f55\u8fdb\u884cHTTP\u64cd\u4f5c\u7684\u6587\u7ae0\uff0c\u4e0d\u8fc7\u4e00\u76f4\u90fd\u6ca1\u6709\u5199\u597d\uff0c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7],"tags":[21,22,1383,61,24],"class_list":["post-4409","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","tag-get","tag-http","tag-httpclient","tag-java","tag-post"],"views":3550,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=4409"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4409\/revisions"}],"predecessor-version":[{"id":4418,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4409\/revisions\/4418"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=4409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=4409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=4409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}