用于解析Json数据的HttpUtils工具类
来源:互联网 发布:推荐c 语言在线编译 编辑:程序博客网 时间:2024/06/05 03:39
该工具类用于解析网址中的Json数据
package org.mobiletrain.robot.http;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;import java.util.Date;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.mobiletrain.robot.bean.ChatMessage;import org.mobiletrain.robot.bean.ChatMessage.Type;import org.mobiletrain.robot.bean.Result;import com.google.gson.Gson;import com.google.gson.JsonSyntaxException;import android.R.string;/** * 联网工具类,用于连接网络,取得数据 * */public class HttpUtils {// 图灵机器人使用api的公网地址public static final String URL = "http://www.tuling123.com/openapi/api";// 申请的apiKeypublic static final String API_KEY = "be12dd3c0bac3654e78aa69e4b36a6dd";/** * 通过HttpURLConnection解析Json数据,返回结果是一个字符串 * @param url * @return */public static String getJsonContent(String url) {String result = "";URL url2;InputStream is;InputStreamReader isr;BufferedReader br;try {url2 = new URL(url);HttpURLConnection connection = (HttpURLConnection) url2.openConnection();is = connection.getInputStream();isr = new InputStreamReader(is, "utf-8");String line = "";br = new BufferedReader(isr);while ((line = br.readLine()) != null) {result += line;}try {br.close();} catch (IOException e) {e.printStackTrace();}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return result;}/** * 通过HttpClient解析Json数据,返回结果是一个字符串 * @param url * @return */public static String getJsonContent2(String url) {String result = "";HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet(url);HttpResponse response = null;try {response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {result = EntityUtils.toString(response.getEntity(), "utf-8");}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return result;}/** * 解析Json数据,返回结果是一个byte[]数组,一般用于解析网络图片 * @param url * @return */public static byte[] getByteContent2(String url) {byte[] data = null;HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet(url);HttpResponse response = null;try {response = httpClient.execute(httpGet);if (response.getStatusLine().getStatusCode() == 200) {data = EntityUtils.toByteArray(response.getEntity());}return data;} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return data;}/** * 通过HttpURLConnection解析Json数据,返回结果也是一个byte[]类型的数组 * @param url * @return */public static byte[] getByteContent(String url) {try {URL url2 = new URL(url);HttpURLConnection httpConn = (HttpURLConnection) url2.openConnection();httpConn.setDoInput(true); // 允许输入内容httpConn.setDoOutput(false);httpConn.connect();ByteArrayOutputStream baos = new ByteArrayOutputStream();if (httpConn.getResponseCode() == 200) {BufferedInputStream bis = new BufferedInputStream(httpConn.getInputStream());byte[] buffer = new byte[8 * 1024];int c = 0;while ((c = bis.read(buffer)) != -1) {baos.write(buffer, 0, c);baos.flush();}byte[] data = baos.toByteArray();return data;}} catch (Exception e) {e.printStackTrace();}return null;}/** * 拼接接口,其中参数为用户输入传来的内容 */public static String setParams(String msg){String url = "";try { url = URL +"?key="+API_KEY+"&info="+URLEncoder.encode(msg, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return url;}/** * 解析Json数据,返回类型是一个ChatMessage对象 * @param msg * @return */public static ChatMessage sendMessage(String msg){ChatMessage chatMessage = new ChatMessage();String jsonRes = getJsonContent(setParams(msg));Gson gson = new Gson();Result result = null;try {result = gson.fromJson(jsonRes, Result.class);chatMessage.setMessage(result.getText());} catch (JsonSyntaxException e) {chatMessage.setMessage("服务器繁忙,请稍后再试");}chatMessage.setDate(new Date());chatMessage.setType(Type.INCOMING);return chatMessage;}}
0 0
- 用于解析Json数据的HttpUtils工具类
- HttpUtils 用于进行网络请求的工具类(未测试)
- HttpUtils 用于进行网络请求的工具类
- HttpUtils解析xml数据
- HttpUtils解析数据
- Httputils解析gson数据
- HttpUtils 请求数据(json)
- Android HttpUtils-Http请求的工具类
- 基于okhttp3的工具类HttpUtils
- 解析服务器返回的Json 数据的工具类
- Java解析POST提交的json数据工具类
- Android HttpUtils工具类
- HttpUtils工具类
- httpUtils工具类
- Httputils请求数据Pull解析
- Android gson解析json数据工具类
- jackson json数据过滤,用于hibernate的懒加载对象级联关系的json解析
- 自己封装的联网工具类HttpUtils的使用
- 23设计模式之目录
- 二维数组中的查找
- 怎样才算精通C语言呢?
- iOS开发不借助第三方控件实现侧边栏效果
- MapReduce案例学习开篇
- 用于解析Json数据的HttpUtils工具类
- 数组和指针内存分配示例代码
- 自学安卓复习基础_之十(使用适配器BaseAdapter来实现listView的CRD)
- Activiti入门教程六(详解Activiti中的查询API)
- iOS之旅--首尾式动画初学总结
- iOS中URL问题
- spring技术内幕之spring mvc
- Git使用流程
- unsigned 隐式转换