HttpClient使用HttpGet進行json資料傳輸
阿新 • • 發佈:2019-01-24
專案中與對方進行資料互動時,對方提供了一套誇域json方式傳遞資料,並給出了一個js示例
Js程式碼- $.getJSON(
- "http://www.----aspx?callback=?",
- {Name:"123",Pass:"123"},
- function(json){
- if(json.UserId==null){
- alert("NO");
- }else{
- alert(json.UserId);
- }
- }
- );
但是此方法處理資料時,只能在頁面中進行,侷限性很大。因此在具體實施時,使用了HttpClient來代替。
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.HttpStatus;
- import org.apache.http.NameValuePair;
-
import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.utils.URLEncodedUtils;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.protocol.HTTP;
- import org.json.JSONException;
-
import org.json.JSONObject;
- import org.json.JSONTokener;
- /**
- * 使用HttpClient請求頁面並返回json格式資料.
- * 對方接收的也是json格式資料。
- * 因此使用HttpGet。
- * */
- public class Json {
- public static void main(String[] args) throws JSONException {
- JSONObject json = new JSONObject();
- List<NameValuePair> params = new ArrayList<NameValuePair>();
- params.add(new BasicNameValuePair("Name", "123"));
- params.add(new BasicNameValuePair("Pass", "123"));
- //要傳遞的引數.
- String url = "http://www.----aspx?" + URLEncodedUtils.format(params, HTTP.UTF_8);
- //拼接路徑字串將引數包含進去
- json = get(url);
- System.out.println(json.get("UserId"));
- }
- public static JSONObject get(String url) {
- HttpClient client = new DefaultHttpClient();
- HttpGet get = new HttpGet(url);
- JSONObject json = null;
- try {
- HttpResponse res = client.execute(get);
- if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
- HttpEntity entity = res.getEntity();
- json = new JSONObject(new JSONTokener(new InputStreamReader(entity.getContent(), HTTP.UTF_8)));
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally{
- //關閉連線 ,釋放資源
- client.getConnectionManager().shutdown();
- }
- return json;
- }
- }