POSTは、JSONデータリターンを得るために、外部のサーバインターフェイスを呼び出すGET

// 1。POST调用外部服务器接口、获取返回JSON数据
プライベート文字列getClientData(地図<文字列、文字列>のparams、String型のURLは)AppException {スロー
  URLを接続します。
  StringBufferのデータ=新しいStringBufferを();
  試す{
    //创建连接
    =新しいURL(URL)を接続します。
    HttpURLConnectionの接続=(HttpURLConnectionの)connect.openConnection();
    connection.setRequestMethod( "POST");
    connection.setDoOutput(真の);
    connection.setDoInput(真の);
    connection.setUseCaches(偽); //ポスト不能使用缓存
    connection.setInstanceFollowRedirects(真の);
    connection.setRequestProperty( "* / *"、 "受け入れます");
    connection.setRequestProperty(「接続」、「キープアライブ」)。
    connection.setRequestProperty( "ユーザーエージェント"、 "Mozillaの/ 4.0(互換; MSIE 6.0; Windows NTの5.1; SV1)");
    OutputStreamWriter paramout =新規のOutputStreamWriter(
    connection.getOutputStream()、 "UTF-8");

    //拼接ポスト请求的参数
    文字列paramsStr = "";
    用(文字列PARAM:params.keySet()){
      paramsStr + = "&" + PARAM + "=" + params.get(PARAM)。
    }
    {IF(paramsStr.isEmpty()!)
      paramsStr = paramsStr.substring(1)。
    }
    paramout.write(paramsStr)。
    paramout.flush();
    BufferedReaderのリーダー=新しいBufferedReaderの(新しいInputStreamReaderの(connection.getInputStream()、 "UTF-8"));

    一方、((ライン= reader.readLine())!= NULL){
      インターフェースデータを返す//
      data.append(行);
    }

    paramout.close();
    reader.Close();
  }キャッチ(例外E){
    E .printStackTrace();
  戻りNULL;
  }
  data.toStringを(返す);
}
// 2は外部サーバにGETインタフェースを呼び出し、データを取得するJSONを返さ。
@SuppressWarnings({ "リソース"})
プライベート文字列のgetData(MAP <文字列、文字列> paramsが、文字列のURL){
  文字列の結果= "";
  //スプライシングURL
  文字列paramsStrは= "";
  リスト<String>はをArrayListに<文字列>(params.keySetは())新しい新しいリストを=;
  のため(int型I = 0;私は< list.size();私は++){
    IF(I == 0){
      paramsStr = "?" + list.get(0)+ "=" + params.get(list.get(0))。
    }他{
      paramsStr + = "&" + list.get(I)+ "=" + params.get(list.get(I))。
    }
  }
  試みる{
    HttpClientをクライアント=新しいDefaultHttpClient()。
    HTTPGET GET =新しいHTTPGET(URL + paramsStr)。
    get.setHeader( "文字セット"、 "UTF-8");

    org.apache.http.HttpResponse応答= client.execute(取得)。
    もし(200 == response.getStatusLine()getStatusCode()){
      結果= EntityUtils.toString(response.getEntity()、 "UTF-8");
    }
  }キャッチ(ClientProtocolException電子){
    e.printStackTrace();
    ヌルを返します。
  }キャッチ(IOExceptionを電子){
    e.printStackTrace();
    ヌルを返します。
  }
  戻り値の結果;
}

// 3。附录:引包
インポートjava.io.BufferedReader。
インポートにjava.io.IOException;
輸入java.io.InputStreamReader。
輸入java.io.OutputStreamWriterが、
インポートのjava.net.HttpURLConnection;
インポートのjava.net.URL;
輸入はjava.util.ArrayList;
輸入java.util.HashMapを;
輸入はjava.util.List;
輸入java.util.Map;
輸入java.util.regex.Matcher;
輸入java.util.regex.Patternの。
輸入javax.annotation.Resource。
輸入org.apache.commons.lang.StringUtils。
輸入org.apache.http.client.ClientProtocolException。
輸入org.apache.http.client.HttpClient。
輸入org.apache.http.client.methods.HttpGet;
輸入org.apache.http.impl.client.DefaultHttpClient。
輸入org.apache.http.util.EntityUtils。
輸入org.apache.logging.log4j.LogManager。
輸入org.apache.logging.log4j.Logger。
輸入org.springframework.stereotype.Service。
輸入org.springframework.transaction.annotation.Transactional;
輸入com.alibaba.fastjson.JSON。
輸入com.alibaba.fastjson.JSONObject。
輸入com.freework.Constant。
輸入com.freework.base.exception.AppException。
輸入com.freework.freedbm.bean.Criteria。
輸入com.freework.freedbm.util.PageGridParam。
輸入com.freework.freedbm.util.PageTotalResult。

おすすめ

転載: www.cnblogs.com/sunshijia1993/p/11318941.html