Java進階(三十一) Web服務調用

      網友投稿 780 2022-05-30

      Java進階(三十一) Web服務調用

      前言

      有朋友問了一個問題:如何調用已知的音樂服務接口,服務文檔如下:

      https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19

      查看代碼之后,按照以往的服務調用方法實現,結果無法實現。很是費解,求教大師兄之后,問題,迎刃而解,只能說自己需要學習的地方還有很多。

      完整代碼如下:

      package plan.http.util;

      import java.io.IOException;

      import java.io.UnsupportedEncodingException;

      import java.util.ArrayList;

      import java.util.List;

      import org.apache.http.HttpEntity;

      import org.apache.http.NameValuePair;

      import org.apache.http.client.ClientProtocolException;

      import org.apache.http.client.entity.UrlEncodedFormEntity;

      import org.apache.http.client.methods.CloseableHttpResponse;

      import org.apache.http.client.methods.HttpPost;

      import org.apache.http.impl.client.CloseableHttpClient;

      import org.apache.http.impl.client.HttpClients;

      import org.apache.http.message.BasicNameValuePair;

      import org.apache.http.util.EntityUtils;

      public class HttpClientUtil {

      public static void main(String[] args) throws Exception {

      HttpClientUtil.getByHttpPost();

      }

      public static String getByHttpPost() throws Exception {

      // 1.創建HttpClient對象。(創建默認的httpClient實例.)

      CloseableHttpClient httpclient = HttpClients.createDefault();

      // 首頁

      String indexStr = "http://music-download.dev.fotoable.net/musics/lists";

      // 搜索

      String searchStr = "http://music-download.dev.fotoable.net/public/search";

      // 2.創建請求方法的實例,并指定請求URL。如果需要發送GET請求,創建HttpGet對象;如果需要發送POST請求,創建HttpPost對象。(創建httppost)

      HttpPost httppost = new HttpPost(searchStr);

      List formparams = new ArrayList();

      // 3.如果需要發送請求參數,可調用HttpGet、HttpPost共同的setParams(HetpParams params)方法來添加請求參數;

      // 對于HttpPost對象而言,也可調用setEntity(HttpEntity entity)方法來設置請求參數。

      // 關鍵詞搜索傳參(創建參數隊列)

      formparams.add(new BasicNameValuePair("keyword", "See you again"));

      // formparams.add(new BasicNameValuePair("pwd", "123"));

      UrlEncodedFormEntity uefEntity;

      try {

      uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");

      httppost.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0");

      httppost.setHeader("Connection", "keep-alive");

      httppost.setHeader("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");

      httppost.setHeader("Accept-Encoding", "gzip, deflate");

      httppost.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

      httppost.setHeader("JSESSIONID","536020F424630F22DB1F4EAEAD8E83BD");

      httppost.setEntity(uefEntity);

      System.out.println("executing request " + httppost.getURI());

      // 4.調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。

      CloseableHttpResponse response = httpclient.execute(httppost);

      try {

      HttpEntity entity = response.getEntity();

      if (entity != null) {

      System.out.println("--------------------------------------");

      System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));

      System.out.println("--------------------------------------");

      Java進階(三十一) Web服務調用

      }

      } finally {

      response.close();

      }

      } catch (ClientProtocolException e) {

      e.printStackTrace();

      } catch (UnsupportedEncodingException e1) {

      e1.printStackTrace();

      } catch (IOException e) {

      e.printStackTrace();

      } finally {

      try {

      // 5. 釋放連接。無論執行方法是否成功,都必須釋放連接

      httpclient.close();

      } catch (IOException e) {

      e.printStackTrace();

      }

      }

      return null;

      }

      }

      參考文獻

      http://blog.csdn.net/wangpeng047/article/details/19624529

      感觸

      自己還是應該多多學習才是,遇到了問題不要緊,要懂得回過頭來認真總結,學習。這樣才能不斷進步。

      美文美圖

      Java web前端

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:C++搭建集群聊天室(十):登錄與注冊
      下一篇:軟件測試--cookie學習
      相關文章
      亚洲乱码中文论理电影| 麻豆狠色伊人亚洲综合网站| 亚洲网站在线免费观看| 亚洲人成网77777亚洲色| 久久久久久久亚洲精品| 日韩欧美亚洲中文乱码| 亚洲A∨无码无在线观看| 亚洲av无码国产综合专区| 亚洲成a人片在线观看无码专区| 亚洲A∨午夜成人片精品网站 | 亚洲变态另类一区二区三区| 久久精品国产亚洲AV高清热| mm1313亚洲精品无码又大又粗| 亚洲欧美成人综合久久久| 亚洲av中文无码字幕色不卡| 亚洲youwu永久无码精品| 18禁亚洲深夜福利人口| 国内成人精品亚洲日本语音| 色天使色婷婷在线影院亚洲| 亚洲AV无码国产一区二区三区 | 亚洲A∨精品一区二区三区下载| 亚洲av永久无码精品秋霞电影秋 | 内射无码专区久久亚洲 | 亚洲天堂中文字幕在线观看| 亚洲丰满熟女一区二区v| 亚洲伊人久久大香线蕉在观| 亚洲中文字幕无码mv| 亚洲人成色4444在线观看| 亚洲aⅴ无码专区在线观看春色| 亚洲国产天堂久久综合| 中文字幕精品亚洲无线码一区 | 久久久久亚洲av无码尤物| 77777_亚洲午夜久久多人| 亚洲成a人不卡在线观看| 亚洲国产日韩精品| 亚洲av无码一区二区三区在线播放 | 亚洲精品国产福利片| 亚洲第一成人在线| 久久亚洲精品无码网站| 亚洲精品无码AV中文字幕电影网站| 亚洲色爱图小说专区|