日期:2014-05-16  浏览次数:20373 次

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"));??
??????????
??? }??
?
?