pb java调用http接口 接口问题,返回值JSON格式,怎么获取返回值

2015年2月 Java大版内专家分月排行榜第二2014年3月 Java大版内专家分月排行榜第二
2014年9月 Java大版内专家分月排行榜第三2014年6月 Java大版内专家分月排行榜第三2014年2月 Java大版内专家分月排行榜第三2013年11月 Java大版内专家分月排行榜第三2013年10月 Java大版内专家分月排行榜第三
2016年1月 Java大版内专家分月排行榜第二2015年12月 Java大版内专家分月排行榜第二2015年8月 Java大版内专家分月排行榜第二2015年3月 Java大版内专家分月排行榜第二2015年1月 Java大版内专家分月排行榜第二2014年12月 Java大版内专家分月排行榜第二2014年11月 Java大版内专家分月排行榜第二2014年6月 Java大版内专家分月排行榜第二2014年4月 Java大版内专家分月排行榜第二2014年1月 Java大版内专家分月排行榜第二2013年11月 Java大版内专家分月排行榜第二
2015年9月 Java大版内专家分月排行榜第三2015年6月 Java大版内专家分月排行榜第三2015年5月 Java大版内专家分月排行榜第三2015年2月 Java大版内专家分月排行榜第三2014年3月 Java大版内专家分月排行榜第三2013年12月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。6701人阅读
JAVA(18)
对于那些API接口调用的是一件很简单的事,自己写个膜拜以后自己调用即可,先写个基本的,看客可以根据自己需求进行修改,等以后用反射机制,动态传入Object 就更加完美了,先分享简单的。
import java.io.BufferedR
import java.io.InputStreamR
import java.net.URL;
import java.net.URLC
import net.sf.json.JSONO
public class UrlTest {
public static void main(String[] args) throws Exception {
/**用到的架包有:
json-lib-2.4-jdk15.jar
commons-lang-2.6.jar
ezmorph-1.0.6.jar
commons-logging-1.1.1.jar
commons-collections-3.2.1.jar
commons-beanutils-1.8.3.jar
//外接口路径
String urlStr=&.cn/data/.html&;
URL url=new URL(urlStr);
//返回结果集
StringBuffer document = new StringBuffer();
//创建链接
URLConnection conn = url.openConnection();
//读取返回结果集
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),&utf-8&));
String line =
while ((line = reader.readLine()) != null){
document.append(line);
reader.close();
System.out.println(document);
JSONObject json =JSONObject.fromObject(document.toString());
//查看json格式
System.out.println(json.toString());
//获取json中某个对象
JSONObject obj = (JSONObject) json.get(&weatherinfo&);
System.out.println(obj.toString());
//获取对象中某个属性的值
String val = obj.getString(&city&);
System.out.println(val);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:82124次
积分:1277
积分:1277
排名:千里之外
原创:43篇
评论:37条
(1)(6)(1)(4)(2)(5)(1)(2)(7)(1)(1)(1)(4)(1)(5)(2)(2)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'10:39 提问
HttpClient调用接口返回json
java的httpclient发送post请求传入
data_digest
msg_type,
company_id
,四个参数
调用接口一直返回S02,无法返回我想要的json数据怎么办?
按赞数排序
这你问谁啊,自己调试自己的代码,看看配置是否有问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
首先你需保证接口调用参数的正确,然后根据接口文档查看你这个返回值是代表什么意思?这个是对方服务器处理的返回值,需要跟对方人员沟通。
说明你的参数错误。前提是接口正确,看看返回的错误代码是什么意思吧。或者看看接口接收到的参数类型和你传入的是不是不一样
其他相关推荐shell脚本里面调用http接口并获取返回值? - 知乎1被浏览90分享邀请回答xxx/yyy/zzz' -H 'Content-Type: xxx' -H 'xxx: xxx' --data '{"the": "json"}'12 条评论分享收藏感谢收起现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信息加密处理,然而我们要获取这些数据,就需要引入SSL证书。现在我提供两个方法,帮助各位如何获取http和https返回的数据。
获取http协议的数据的方法,如下:
public static JSONObject httpRequest(String requestUrl, String requestMethod) {&&&&&&& JSONObject jsonObject =&&&&&&& StringBuffer buffer = new StringBuffer();&&&&&&& try {&&&&&&&&&&& URL url = new URL(requestUrl);&&&&&&&&&&& // http协议传输&&&&&&&&&&& HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();&&&&&&&&&&& httpUrlConn.setDoOutput(true);&&&&&&&&&&& httpUrlConn.setDoInput(true);&&&&&&&&&&& httpUrlConn.setUseCaches(false);&&&&&&&&&&& // 设置请求方式(GET/POST)&&&&&&&&&&& httpUrlConn.setRequestMethod(requestMethod);&&&&&&&&&&& if ("GET".equalsIgnoreCase(requestMethod))&&&&&&&&&&&&&&& httpUrlConn.connect();&&&&&&&&&&& // 将返回的输入流转换成字符串&&&&&&&&&&& InputStream inputStream = httpUrlConn.getInputStream();&&&&&&&&&&& InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");&&&&&&&&&&& BufferedReader bufferedReader = new BufferedReader(inputStreamReader);&&&&&&&&&&& String str =&&&&&&&&&&& while ((str = bufferedReader.readLine()) != null) {&&&&&&&&&&&&&&& buffer.append(str);&&&&&&&&&&& }&&&&&&&&&&& bufferedReader.close();&&&&&&&&&&& inputStreamReader.close();&&&&&&&&&&& // 释放资源&&&&&&&&&&& inputStream.close();&&&&&&&&&&& inputStream =&&&&&&&&&&& httpUrlConn.disconnect();&&&&&&&&&&& jsonObject = JSONObject.fromObject(buffer.toString());&&&&&&& } catch (Exception e) {&&&&&&&&&&& e.printStackTrace();&&&&&&& }&&&&&&& return jsonO&&& }
获取https协议的数据的方法,如下:
public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {&&&&&&& JSONObject jsonObject =&&&&&&& StringBuffer buffer = new StringBuffer();&&&&&&& try {&&&&&&&&&&& // 创建SSLContext对象,并使用我们指定的信任管理器初始化&&&&&&&&&&& TrustManager[] tm = { new MyX509TrustManager() };&&&&&&&&&&& SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");&&&&&&&&&&& sslContext.init(null, tm, new java.security.SecureRandom());&&&&&&&&&&& // 从上述SSLContext对象中得到SSLSocketFactory对象&&&&&&&&&&& SSLSocketFactory ssf = sslContext.getSocketFactory();&&&&&&&&&&& URL url = new URL(requestUrl);&&&&&&&&&&& HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();&&&&&&&&&&& httpUrlConn.setSSLSocketFactory(ssf);&&&&&&&&&&& httpUrlConn.setDoOutput(true);&&&&&&&&&&& httpUrlConn.setDoInput(true);&&&&&&&&&&& httpUrlConn.setUseCaches(false);&&&&&&&&&&& // 设置请求方式(GET/POST)&&&&&&&&&&& httpUrlConn.setRequestMethod(requestMethod);&&&&&&&&&&& if ("GET".equalsIgnoreCase(requestMethod))&&&&&&&&&&&&&&& httpUrlConn.connect();&&&&&&&&&&& // 当有数据需要提交时&&&&&&&&&&& if (null != outputStr) {&&&&&&&&&&&&&&& OutputStream outputStream = httpUrlConn.getOutputStream();&&&&&&&&&&&&&&& // 注意编码格式,防止中文乱码&&&&&&&&&&&&&&& outputStream.write(outputStr.getBytes("UTF-8"));&&&&&&&&&&&&&&& outputStream.close();&&&&&&&&&&& }&&&&&&&&&&& // 将返回的输入流转换成字符串&&&&&&&&&&& InputStream inputStream = httpUrlConn.getInputStream();&&&&&&&&&&& InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");&&&&&&&&&&& BufferedReader bufferedReader = new BufferedReader(inputStreamReader);&&&&&&&&&&& String str =&&&&&&&&&&& while ((str = bufferedReader.readLine()) != null) {&&&&&&&&&&&&&&& buffer.append(str);&&&&&&&&&&& }&&&&&&&&&&& bufferedReader.close();&&&&&&&&&&& inputStreamReader.close();&&&&&&&&&&& // 释放资源&&&&&&&&&&& inputStream.close();&&&&&&&&&&& inputStream =&&&&&&&&&&& httpUrlConn.disconnect();&&&&&&&&&&& jsonObject = JSONObject.fromObject(buffer.toString());&&&&&&& } catch (ConnectException ce) {&&&&&&&&&&& log.error("Weixin server connection timed out.");&&&&&&& } catch (Exception e) {&&&&&&&&&&& log.error("https request error:{}", e);&&&&&&& }&&&&&&& return jsonO
获取https协议的数据和获取http协议的区别在于&& // 创建SSLContext对象,并使用我们指定的信任管理器初始化&&&&&&&&&&& TrustManager[] tm = { new MyX509TrustManager() };&&&&&&&&&&& SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");&&&&&&&&&&& sslContext.init(null, tm, new java.security.SecureRandom());&&&&&&&&&&& // 从上述SSLContext对象中得到SSLSocketFactory对象&&&&&&&&&&& SSLSocketFactory ssf = sslContext.getSocketFactory();&&&&&&&&&&& URL url = new URL(requestUrl);&&&&&&&&&&& HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();&&&&&&&&&&& httpUrlConn.setSSLSocketFactory(ssf);
大家有更好的方法欢迎留言分享,以上就是本次共享的内容 。还有,提示一下,如果复制中,缺失jar包,请自行下载,如果找不到,请给我留言,还有,程序是死的,人是活的,怎么方便怎么来
阅读(...) 评论()

我要回帖

更多关于 pb json的http接口 的文章

 

随机推荐