项目中与对方进行数据交互时,对方提供了一套夸域json方式传递数据,并给出了一个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;
- }
- }