当前位置: 代码迷 >> JavaScript >> java_HttpClient使用HttpGet进展json数据传输
  详细解决方案

java_HttpClient使用HttpGet进展json数据传输

热度:573   发布时间:2013-11-12 12:10:37.0
java_HttpClient使用HttpGet进行json数据传输

via: http://zhcheng.iteye.com/blog/1292350

?

项目中与对方进行数据交互时,对方提供了一套夸域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;??
??? }??
}?

  相关解决方案