<code>package</code> <code>com.mzsx.http;</code>
<code>import</code> <code>java.io.BufferedReader;</code>
<code>import</code> <code>java.io.DataOutputStream;</code>
<code>import</code> <code>java.io.IOException;</code>
<code>import</code> <code>java.io.InputStreamReader;</code>
<code>import</code> <code>java.io.UnsupportedEncodingException;</code>
<code>import</code> <code>java.net.HttpURLConnection;</code>
<code>import</code> <code>java.net.URL;</code>
<code>import</code> <code>java.net.URLEncoder;</code>
<code>public</code> <code>class</code> <code>HttpJsonUilt {</code>
<code> </code><code>/**</code>
<code> </code><code>* Get請求</code>
<code> </code><code>*</code>
<code> </code><code>* */</code>
<code> </code><code>public</code> <code>static</code> <code>String readContentFromGet(String GET_URL) </code><code>throws</code> <code>IOException{</code>
<code> </code><code>URL getUrl = </code><code>new</code> <code>URL(GET_URL);</code>
<code> </code><code>HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();</code>
<code> </code><code>connection.connect();</code>
<code> </code><code>BufferedReader reader = </code><code>new</code> <code>BufferedReader(</code><code>new</code> <code>InputStreamReader(connection.getInputStream(),</code><code>"utf-8"</code><code>));</code><code>//設定編碼,否則中文亂碼</code>
<code> </code><code>StringBuffer lines=</code><code>new</code> <code>StringBuffer();</code>
<code> </code><code>String line=</code><code>null</code><code>;</code>
<code> </code><code>while</code> <code>((line = reader.readLine()) != </code><code>null</code><code>){</code>
<code> </code><code>lines.append(line);</code>
<code> </code><code>}</code>
<code> </code><code>reader.close();</code>
<code> </code><code>// 斷開連接配接</code>
<code> </code><code>connection.disconnect();</code>
<code> </code><code>return</code> <code>lines.toString();</code>
<code> </code><code>}</code>
<code> </code><code>* post請求</code>
<code> </code><code>public</code> <code>static</code> <code>String readContentFromPost(String POST_URL, String params) </code><code>throws</code> <code>IOException{</code>
<code> </code><code>URL postUrl = </code><code>new</code> <code>URL(URLEncoder.encode(POST_URL,</code><code>"utf-8"</code><code>));</code>
<code> </code><code>// 打開連接配接</code>
<code> </code><code>HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();</code>
<code> </code><code>connection.setDoOutput(</code><code>true</code><code>);</code>
<code> </code><code>connection.setDoInput(</code><code>true</code><code>);</code>
<code> </code><code>connection.setRequestMethod(</code><code>"POST"</code><code>);</code>
<code> </code><code>// Post 請求不能使用緩存</code>
<code> </code><code>connection.setUseCaches(</code><code>false</code><code>);</code>
<code> </code><code>connection.setInstanceFollowRedirects(</code><code>true</code><code>);</code>
<code> </code><code>connection.setRequestProperty(</code><code>"Content-Type"</code><code>,</code><code>"application/x-www-form-urlencoded"</code><code>);</code>
<code> </code><code>// 連接配接,從postUrl.openConnection()至此的配置必須要在connect之前完成,</code>
<code> </code><code>// 要注意的是connection.getOutputStream會隐含的進行connect。</code>
<code> </code><code>DataOutputStream out = </code><code>new</code> <code>DataOutputStream(connection</code>
<code> </code><code>.getOutputStream());</code>
<code> </code><code>// String content = "";//"key=j0r53nmbbd78x7m1pqml06u2&type=1&[email protected]" + "&activatecode=" + URLEncoder.encode("中國聚龍", "utf-8");</code>
<code> </code><code>// DataOutputStream.writeBytes将字元串中的16位的unicode字元以8位的字元形式寫道流裡面</code>
<code> </code><code>out.writeBytes(params);</code>
<code> </code><code>out.flush();</code>
<code> </code><code>out.close(); </code><code>// flush and close</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) </code><code>throws</code> <code>UnsupportedEncodingException {</code>
<code> </code><code>//如果參數中有中文可以使用URLEncoder.encode(params,"utf-8")轉義</code>
<code> </code><code>//http://api.map.baidu.com/place/v2/search?</code>
<code> </code>
<code> </code><code>String GET_URL = </code><code>"http://api.map.baidu.com/place/v2/search?ak=F454f8a5efe5e577997931cc01de3974&output=json&query="</code><code>+URLEncoder.encode(</code><code>"銀行"</code><code>,</code><code>"utf-8"</code><code>)+</code><code>"&page_size=10&page_num=0&scope=1&region="</code><code>+URLEncoder.encode(</code><code>"北京"</code><code>,</code><code>"utf-8"</code><code>);</code>
<code> </code><code>System.out.println(GET_URL);</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>System.out.println(readContentFromGet(GET_URL));</code>
<code> </code><code>} </code><code>catch</code> <code>(IOException e) {</code>
<code> </code><code>// TODO Auto-generated catch block</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code>
<code>}</code>
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 夢朝思夕 51CTO部落格,原文連結:http://blog.51cto.com/qiangmzsx/1394730