• 关于

    android 网络json数据

    的搜索结果

回答

如果你学过Javaweb,你可以提供后台数据接口作为服务器的数据,android端可以通过后台提供的数据接口来解析服务器端的数据,Java端提供比如json、xml、html格式的数据,把这些数据做成一个链接的形式,android通过访问网络数据来解析这些数据

爵霸 2019-12-02 02:45:57 0 浏览量 回答数 0

回答

Re:android oss ListObjectOption发送网络请求.获取json数据报错。什么原因?求指 .. 看上去是Json的jar包冲突了

oss-dev 2019-12-02 00:36:57 0 浏览量 回答数 0

回答

Reandroid oss ListObjectOption发送网络请求.获取json数据报错。什么原因?求指 看上去是您实现的FederationTokenGetter中重载方法的时候,解析json时调用了一个android上没有的方法,或者您没有引入相关的库。可以尝试使用android原生的json解析方式来试下。 ------------------------- Reandroid oss ListObjectOption发送网络请求.获取json数据报错。什么原因?求指 String queryUrl = "http://" + serverAddress + "/distribute-token.json?user-name="+ userId; getTokenFromServer() 这种用法,需要您这边配置有自己的业务server,server上通过STS SDK拿到sts token,把token交到移动端。就是这段代码:             String queryUrl = "http://" + serverAddress + "/distribute-token.json?user-name="+ userId;             String responseStr = null;             try {                 DefaultHttpClient client = new DefaultHttpClient();                 HttpGet httpGet = new HttpGet(queryUrl);                 HttpResponse hr = client.execute(httpGet);                 responseStr = EntityUtils.toString(hr.getEntity());             } catch (ClientProtocolException e) {                 e.printStackTrace();             } catch (IOException e) {                 e.printStackTrace();             } 您这边搭建有这样的业务server了吗?是否能够把responseStr打印出来验证token已经拿到?按照官方demo,这个responseStr应该是一个json串,直接用android的json库解析就好了,不需要引入其他json库,也不需要做XML.toJson的操作。 ------------------------- 回 7楼debug的帖子 可以从简单的做起,参考一下这个demo: https://github.com/alibaba/alicloud-android-demo 先不走sts token授权的方式,先在本地做测试,了解怎么listObjects。 这个文件演示了具体的方法:https://github.com/alibaba/alicloud-android-demo/blob/master/oss_android_demo/src/main/java/com/alibaba/sdk/android/dpa/oss_android_demo/ListObjectsInBucketDemo.java 主要步骤就是:初始化ossService(包括鉴权,先使用本地鉴权的方式),然后获取bucket,再罗列bucket。

qq449774982 2019-12-02 00:36:57 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

问题

android oss ListObjectOption发送网络请求.获取json数据报错。什么原因?求指点!

debug_ 2019-12-01 21:34:53 7826 浏览量 回答数 3

回答

有时后台接口获取数据的时候不是使用键值对的参数获取,尤其Android发送数据是使用json格式输入流发送的,ajax使用post发送方法如下: var da = {ckid:1,category:1}; $.ajax({ type: "POST", url: "http://121.42.210.244:8080/haier_jiekou/storegoods/selestByCkidAngCategoryMap", contentType: "application/json; charset=utf-8", data: JSON.stringify(da), dataType: "json", success: function (message) { var ff = message.data[0]; console.log(ff); }, error: function (message) { $("#request-process-patent").html("提交数据失败!"); } }); ajax发送添加 contentType: "application/json; charset=utf-8", 并且data值为字符串。 发送到后台的数据则通过 request.getInputStream() 获取。 后台数据处理 import org.json.JSONObject; /** * 解析请求中的内容,转换为map格式 * * @author HZC * @param request * @return */ public static Map<String, String> convertRequestPrama(HttpServletRequest request) { Map<String, String> map = new HashMap<String, String>(); // 读取请求内容 BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8")); } catch (IOException e) { e.printStackTrace(); } String line = null; StringBuilder sb = new StringBuilder(); try { while ((line = br.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } // 将资料解码 String reqBody = sb.toString(); if (StringUtils.isEmpty(reqBody)) return null; JSONObject jsonObject = new JSONObject(reqBody); Iterator iterator = jsonObject.keys(); String key = null; String value = null; while (iterator.hasNext()) { key = (String) iterator.next(); value = jsonObject.getString(key); map.put(key, value); } return map; } ps:来源网络

元芳啊 2019-12-02 00:54:51 0 浏览量 回答数 0

问题

android从网络返回数据格式是json的,解析就是不行。具体看下面代码!?报错

爱吃鱼的程序员 2020-06-22 20:34:34 0 浏览量 回答数 1

回答

一、 Afinal官方介绍:Afinal是一个Android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用;使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。项目地址:https://github.com/yangfuhai/afinal功能:一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。优点:功能比较全面,文档完善,代码效率比较高。缺点:没有项目demo,框架的时间比较久,代码冗余比较多(这也是无可避免的),文档比较老跟不上代码更新进度。(这个评价是其他高人评的,他自己也有写了框架。我个人觉得以前Afinal算是经典了 用的人多)。二、 xUtilsGit地址:https://github.com/wyouflf/xUtilsxUtils:可以说是Afinal的升级版。xUtils 包含了很多实用的android工具。xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls 最低兼容android 2.2 (api level 8)三、 ThinkAndroid项目地址:https://github.com/white-cat/ThinkAndroid官方介绍:ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具优点:功能看起来比较完善。个人觉得名字起的好。缺点:从2013年就停止维护了,没有项目文档。四、 LoonAndroid官方介绍:如果你想看ui方面的东西,这里没有,想要看牛逼的效果这里也没有。这只是纯实现功能的框架,它的目标是节省代码量,降低耦合,让代码层次看起来更清晰。整个框架一部分是网上的,一部分是我改的,为了适应我的编码习惯,还有一部分像orm完全是网上的组件。在此感谢那些朋友们。 整个框架式的初衷是为了偷懒,之前都是一个功能一个jar,做项目的时候拉进去,这样对于我来说依然还是比较麻烦。最后就导致我把所有的jar做成了一个工具集合包。 有很多框架都含有这个工具集合里的功能,这些不一定都好用,因为这是根据我个人使用喜欢来实现的,如果你们有自己的想法,可以自己把架包解压了以后,源码拉出来改动下。 目前很多框架都用到了注解,除了androidannotations没有入侵我们应用的代码以外,其他的基本上都有,要么是必须继承框架里面的activity,要么是必须在activity的oncreat里面调用某个方法。 整个框架式不同于androidannotations,Roboguice等ioc框架,这是一个类似spring的实现方式。在整应用的生命周期中找到切入点,然后对activity的生命周期进行拦截,然后插入自己的功能。开源地址:https://github.com/gdpancheng/LoonAndroid功能:1自动注入框架(只需要继承框架内的application既可)2图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)3网络请求模块(继承了基本上现在所有的http请求)4 eventbus(集成一个开源的框架)5验证框架(集成开源框架)6 json解析(支持解析成集合或者对象)7 数据库(不知道是哪位写的 忘记了)8 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)9 自动更新模块10 一系列工具类有点:功能多缺点:文档方面五、 KJFrameForAndroid项目地址:https://github.com/kymjs/KJFrameForAndroid官方介绍:KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用;KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。我们提倡用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。功能:一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用; KJFrameForAndroid开发框架的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。总共分为五大模块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。优点:功能比较全面,代码效率很高,文档完善,有项目demo,出来的比较晚借鉴了很多大型框架经验。缺点:项目文档是html页面,查看起来很不方便,项目交流平台没多少人说话(难道大神都是不说话的?)(这两个评价是KJFrameForAndroid的作者对自己的评价,个人觉得作者是个天才。他的评价可能刚写完网上发布后写的。我在给他更新评价。因为现在已经过去了几个月一直在时不时更新。功能很全,项目文档也很全面,而且代码里注释最多 这方面这个很难得。交流平台人很多挺热闹,作者希望更热闹这样框架越来越完善。对于初学者希望看到Demo更完善)六、 dhroid官方介绍:dhroid 是基于android 平台, 极速开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展.使你更快,更好的开发商业级别应用开源地址: http://git.oschina.net/tengzhinei/dhroid功能:1.Ioc容器: (用过spring的都知道)视图注入,对象注入,接口注入,解决类依赖关系2.Eventbus: android平台事件总线框架,独创延时事件,事件管理轻松3.Dhnet: 网络http请求的解决方案,使用简单,减少代码,自带多种网络访问缓存策略4.adapter模块: 数据绑定轻松,不用写多余的adapter,天生网络支持(一行代码搞定加载,刷新问题)5.DhDb: android中sqlite的最轻量orm框架(增删改查轻松搞定)6.Perference: android自带Perference 升级版,让你的Perference更强大,更方便工具集合 JSONUtil(安全处理json),ViewUtil(数据绑定更快) ThreadWorker(异步任务工具)...优点:功能全面,有demo,作者也是为公司开发的框架。缺点:文档方面现在不是很好,就eoe上的那些。七、 SmartAndroid项目地址:http://www.aplesson.com/smartAndroid/demos官方介绍:SmartAndroid是一套给 Android开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用 SmartAndroid可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。功能:SmartAndroid 拥有全范围的类库,可以完成大多数通常需要的APP开发任务,包括: 异步网络操作相关所有功能、强大的图片处理操作、轻量级ORM数据库Sqlite库、zip操作 、动画特效、Html等解析采集、事件总线EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多种UI库)等。优点:功能非常全,超出你索要、文档完善(作者很全面,官方网站是web响应式网站,框架里功能有UI各种特效应该最全了,一直更新中)缺点:jar包大点?(功能多不可避免,不是问题),在线文档(随响应式的手机访问也方便,但是网速慢就不好了,页面打开不是很流畅)八、 andBase官方介绍:andbase是为Android开发者量身打造的一款开源类库产品开源地址:https://code.jd.com/zhaoqp2010_m/andbase功能:1.andbase中包含了大量的开发常用手段。如网络下载,多线程与线程池的管理,数据库ORM,图片缓存管理,图片文件下载上传,Http请求工具,常用工具类(字符串,日期,文件处理,图片处理工具类等),能够使您的应用在团队开发中减少冗余代码,很大的提高了代码的维护性与开发高效性,能很好的规避由于开发疏忽而导致常犯的错误。2.andbase封装了大量的常用控件。如list分页,下拉刷新,图片轮播,表格,多线程下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器等。3.强大的AbActivity,您没有理由不继承它。继承它你能够获得一个简单强大可设置的操作栏,以及一系列的简单调用,如弹出框,提示框,进度框,副操作栏等。4.提供效率较高图片缓存管理策略,使内存大幅度节省,利用率提高,效率提高。程序中要管理大量的图片资源,andbase提供简单的方法,几步完成下载与显示,并支持缩放,裁剪,缓存功能。5.封装了大量常见工具类。包括日期,字符,文件,图片等各种处理函数,多而全。6.用andbase大量减少handler的使用,而采用回调函数,代码更整洁。handler会产生大量代码,并且不好维护,andbase对handler进行了封装。7.简单轻量支持注解自动建表的ORM框架(支持一/多对多的关联操作)。写sql,建表,工作量大,andbase提供更傻瓜异步增删改查工具类。8.异步请求http框架,网络请求标准化,支持文件上传下载,get,post,进度显示。包含了异步与http请求的工具类,实用。9.热情的支持群体。优点:功能很全,demo做的好 、API文档完善、接近完美缺点:希望文档更详细些。九、 AndroidAnnotations项目地址:https://github.com/excilys/androidannotations功能:完全注解框架,一切皆为注解:声明控件,绑定控件,设置监听,setcontentview,长按事件,异步线程,全部通过注解实现。优点:完全的注解,使开发起来更加便利,程序员写的代码也更少。缺点:文档是全英文的加上功能比较少没有具体研究,由于一切都是注解,感觉效率不高,不过根据官方介绍说并不是使用的反射加载,所以效率比一般注解高很多。十、 volley项目地址: https://github.com/smanikandan14/Volley-demo功能:Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮异步加载网络图片、网络数据优点:Google官方推荐,请看去年的开发者大会介绍。缺点:功能比较少,只有网络数据加载和网络图片加载十一、 android-async-http项目地址:https://github.com/loopj/android-async-http文档介绍:http://loopj.com/android-async-http/ (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) 默认gzip压缩 (6) 支持解析成Json格式 (7) 可将Cookies持久化到SharedPreferences 有点:很简单很实用缺点:功能比较少, (只是针对的功能不是什么缺点)最后来个总结吧: 以上的开发框架网上都可以下载源码,也有demo实例的。当然我没分析和对比框架的效率性能,但是都非常实用,其作者大部分是个人,都是些牛人或天才。你可以直接使用,也可以把有用跳出来用,至少有很多使用工具。如果有发现Bug,作者希望把bug交给他。 Afinal 和 xUtils简单实用但是demo和更新的问题。 KJFrameForAndroid 算是新出的,功能也多,效率也应该好,代码也注释多 用起来也很方便。Dhroid 作者自己公司的框架,也可以直接请教。SmartAndroid 强劲的框架功能俱全。andBase 出来早各个方面算是完整的吧。转自:http://blog.csdn.net/buddyuu/article/details/40503471

元芳啊 2019-12-02 00:55:54 0 浏览量 回答数 0

问题

ui被销毁时访问网络的线程需要取消么?

蛮大人123 2019-12-01 20:18:12 1179 浏览量 回答数 2

问题

安卓与iOS百问,开发者系统指南

yq传送门 2019-12-01 20:14:48 27317 浏览量 回答数 26

问题

寻找OSS好应用系列之 XDUpdate

寒喵 2019-12-01 20:54:38 1924 浏览量 回答数 0

回答

package com.example.testjsonandget;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;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.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.params.HttpClientParams;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.json.JSONArray;import org.json.JSONObject; import android.app.Activity;import android.os.Bundle; public class MainActivity extends Activity { private final String uriString="your url"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //服务器返回的JSON数据 JSONObject jsonObject=this.getJSONObjectByGet(); try { //从JSON中得到字符串 String apiString=jsonObject.getString("api"); String countString=jsonObject.getString("count"); System.out.println("apiString="+apiString+",countString="+countString); //从JSON中得到JSONArray,并且遍历 JSONArray jsonArray=jsonObject.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject everyJsonObject=jsonArray.getJSONObject(i); String category_id=everyJsonObject.getString("category_id"); String category_name=everyJsonObject.getString("category_name"); String category_rgb=everyJsonObject.getString("category_rgb"); String category_news_count=everyJsonObject.getString("category_news_count"); System.out.println("category_id="+category_id+",category_name="+category_name+ ",category_rgb="+category_rgb+",category_news_count="+category_news_count); System.out.println("====================================================="); } } catch (Exception e) { e.printStackTrace(); } } //得到HttpClient public HttpClient getHttpClient(){ HttpParams mHttpParams=new BasicHttpParams(); //设置网络链接超时 //即:Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(mHttpParams, 20*1000); //设置socket响应超时 //即:in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(mHttpParams, 20*1000); //设置socket缓存大小 HttpConnectionParams.setSocketBufferSize(mHttpParams, 8*1024); //设置是否可以重定向 HttpClientParams.setRedirecting(mHttpParams, true); HttpClient httpClient=new DefaultHttpClient(mHttpParams); return httpClient; } //得到JSONObject(Get方式) public JSONObject getJSONObjectByGet(){ JSONObject resultJsonObject=null; if ("".equals(uriString)||uriString==null) { return null; } HttpClient httpClient=this.getHttpClient(); StringBuilder urlStringBuilder=new StringBuilder(uriString); StringBuilder entityStringBuilder=new StringBuilder(); //利用URL生成一个HttpGet请求 HttpGet httpGet=new HttpGet(urlStringBuilder.toString()); BufferedReader bufferedReader=null; HttpResponse httpResponse=null; try { //HttpClient发出一个HttpGet请求 httpResponse=httpClient.execute(httpGet); } catch (Exception e) { e.printStackTrace(); } //得到httpResponse的状态响应码 int statusCode=httpResponse.getStatusLine().getStatusCode(); if (statusCode==HttpStatus.SC_OK) { //得到httpResponse的实体数据 HttpEntity httpEntity=httpResponse.getEntity(); if (httpEntity!=null) { try { bufferedReader=new BufferedReader (new InputStreamReader(httpEntity.getContent(), "UTF-8"), 8*1024); String line=null; while ((line=bufferedReader.readLine())!=null) { entityStringBuilder.append(line+"/n"); } //利用从HttpEntity中得到的String生成JsonObject resultJsonObject=new JSONObject(entityStringBuilder.toString()); } catch (Exception e) { e.printStackTrace(); } } } return resultJsonObject; } //----------------------------------------以下为POST请求 //准备进行POST请求的参数,一般而言将这些参数封装在HashMap中 public JSONObject save(String title, String timelength) throws Exception{ Map<String,String> paramsHashMap = new HashMap<String, String>(); paramsHashMap.put("title", title); paramsHashMap.put("timelength", timelength); paramsHashMap.put("method", "save"); String path = "your url"; return getJSONObjectByPost(path, paramsHashMap, "UTF-8"); } //得到JSONObject(Post方式) //此方法此处未调用测试 public JSONObject getJSONObjectByPost(String path,Map<String, String> paramsHashMap, String encoding) { JSONObject resultJsonObject = null; List<NameValuePair> nameValuePairArrayList = new ArrayList<NameValuePair>(); // 将传过来的参数填充到List<NameValuePair>中 if (paramsHashMap != null && !paramsHashMap.isEmpty()) { for (Map.Entry<String, String> entry : paramsHashMap.entrySet()) { nameValuePairArrayList.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } } UrlEncodedFormEntity entity = null; try { // 利用List<NameValuePair>生成Post请求的实体数据 // 此处使用了UrlEncodedFormEntity!!! entity = new UrlEncodedFormEntity(nameValuePairArrayList, encoding); HttpPost httpPost = new HttpPost(path); // 为HttpPost设置实体数据 httpPost.setEntity(entity); HttpClient httpClient = this.getHttpClient(); // HttpClient发出Post请求 HttpResponse httpResponse = httpClient.execute(httpPost); if (httpResponse.getStatusLine().getStatusCode() == 200) { // 得到httpResponse的实体数据 HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { try { BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(httpEntity.getContent(),"UTF-8"), 8 * 1024); StringBuilder entityStringBuilder = new StringBuilder(); String line = null; while ((line = bufferedReader.readLine()) != null) { entityStringBuilder.append(line + "/n"); } // 利用从HttpEntity中得到的String生成JsonObject resultJsonObject = new JSONObject(entityStringBuilder.toString()); } catch (Exception e) { e.printStackTrace(); } } } } catch (Exception e) { e.printStackTrace(); } return resultJsonObject; } } ps:来源网络

元芳啊 2019-12-02 00:54:42 0 浏览量 回答数 0

回答

哪种框架(以任何语言)最适合Ember.js的答案基本上是:“任何”。您可能将Ember视为具有文档脚本模式的框架(例如Backbone或普通的旧jQuery),其中服务器呈现文档,而javascript逐渐将其行为增强为静态的内容。最好将Ember视为微型Cocoa / Android,将浏览器定位为运行时环境,而不是特定的移动平台。 无论环境如何,客户端应用程序都适用于任何语言和任何服务器应用程序Web框架。只要该应用使用HTTP并支持发送数据(不仅是呈现页面),就可以了。您甚至不必将JSON用作数据格式,尽管这是当今大多数人选择的格式。 要回答您的其他问题: 身份验证是网络上的服务器问题,因此Ember与它无关。将整个应用程序放在登录页面后面,然后使用所需的任何身份验证机制。如果需要在身份验证之前公开应用程序的某些部分,我只需要在身份验证之前和之后公开一个完全不同的版本(或具有不同路由器的相同版本)。否则,您将发现isAuthenticated乱堆的检查路线和模板。 您可能会为浏览器编写一个完整的客户端应用程序,其原因是任何人都可以在任何地方构建客户端应用程序的原因:有状态性和数据传输成本。Web设计无状态。您可以通过会话获得基本的状态信息,如果您的应用程序可以看作一系列文档,那就足够了。只需完全跳过具有客户端应用程序的步骤,然后将客户端设备视为愚蠢的文档查看器即可。如果您有更复杂的状态需求,则需要在客户端环境本身中进行处理。一旦确定这是必要的,您就会发现发送数据比发送页面或页面片段便宜得多。因此,您的服务器应用程序(以您想要的任何设计模式)都将公开数据,而客户端应用程序(以MVC的模式)将消耗,显示,并允许浏览和与这些数据进行交互。如果您的客户端位于在iPhone上运行的ObjC / Cocoa,在Android上运行的Java,在Roku上运行的BrightScript,在浏览器中运行的Ember或什至为需要远程数据的Windows应用程序供电的C#中,这都是正确的。

祖安文状元 2020-02-23 16:08:06 0 浏览量 回答数 0

问题

ym—— Android网络框架Volley(体验篇) Homepage Rel?400报错

爱吃鱼的程序员 2020-06-03 15:11:15 1 浏览量 回答数 1

回答

1.产品2.UI3.CSS4.JS5.后端(Java/php/python)6.DBA(mysql/oracle)7.运维(OP) 8.测试(QA)9.算法(分类/聚类/关系抽取/实体识别)10.搜索(Lucene/Solr/elasticSearch)11.大数据工程师(Hadoop)12.Android13.IOS14.运营 一.产品1 工作内容:了解用户需求,做竞品调研,画产品原型,写产品文档,讲解产品需求,测试产品Bug,收集用户反馈,苦练金刚罩以防止程序员拿刀砍。2 需要技能:PPT,Word, Axure,XP,MVP,行业知识,沟通。 二. UI1 工作内容:收到产品原型,给原型上色,偶尔会自作主张调整下原型的位置,出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格,最好给Android,IOS或者是CSS做好标注,还有的需要直接帮他们切好图,最后要练出来象素眼,看看这些不靠谱的程序员们有没有上错色或者是有偏差。2 需要技能:PS,Illustrator,Sketch,耐性,找素材。 三. CSS1 工作内容:产品设计好原型,UI做出来了效果图,剩下的就是CSS工程师用代码把静态文件写出来的。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【PS,域名,Html,Html5,CSS,CSS3】扩展【自适应,响应式,Bootstrap,Less,Flex】 四 .JS 1 工作内容:JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】业务【金融,教育,医疗,汽车,房产等等等等各种行业】 五 .后端(Java/python/go) 1 工作内容:大部分的后端工程师都停留在功能实现的层面上。这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计,然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。 2 需要技能:环境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host),源码管理(SVN/Git) ,WEB服务器(nginx,tomcat,Resin)】基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,算法,数据结构】框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit等等等等等】业务【金融,教育,医疗,汽车,房产等等等等各种行业】。 六 .DBA  1 工作内容:如果你做了一个DBA,基本上会遇到两种情况。一种是你的后端工程师懂架构,知道怎么合便使用DB,知道如何防止穿透DB,那么恭喜你,你只是需要当一个DB技术兜底的顾问就好,基本上没什么活可以做,做个监控,写个统计就好了。你可以花时间在MongoDB了,Hadoop了这些,随便玩玩儿。再按照我之前说的,做好数据备份。如果需求变动比较大,往往会牵涉到一些线上数据的更改,那么就在发布的时候安静的等着,等着他们出问题。。。。如果不出问题就可以回家睡觉了。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop】工具【各种DB的版本,工具,备份,日志等】。 七. 运维  1 工作内容:运维的工作大概分成几个部分,我对于修真院学习运维的少年们都这么说,大概是:A。基础环境的搭建和常用软件的安装和配置(兼网管的还有各种程控机),常用软件指的是SVN,Git,邮箱这种,更细节的内容请参考修真院对于运维职业的介绍。B。日常的发布和维护,如刚刚讲到的一样,测试环境和线上环境的发布和记录,原则上,对线上所有的变更都应该有记录。C。数据的备份和服务的监控&安全配置。各种数据,都要做好备份和回滚的手段,提前准备好各种紧急预案,服务的监制要做好。安全始终都是不怎么被重点考虑的问题,因为这个东西无底洞,你永远不知道做到什么程度算是比较安全了,所以大多数都是看着情况来。D。运维工具的编写。这一点在大的云服务器商里格外常见,大公司也是一样的。E。Hadoop相关的大数据体系架构的运维,确实有公司在用几百台机器做Hadoop,所以虽然不常见,我还是列出来吧。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop,nginx,apache,F5,lvs,vpn,iptable,svn,git,memcache,redis】工具【linux 常用工具,Mysql常用工具,Jenkins,zabbix,nagios】自动化运维【openstack,docker,ansible】语言【shell,python】 八 .QA  1 工作内容:QA需要了解需求,很多公司会要求QA写测试用例,我觉得是扯淡。完全是在浪费时间。通常开发三周,QA测试的时间只有一周到一周半。还有关于提前写测试用例的,都不靠谱。 2 需要技能:流程【Bug修复流程,版本发布流程】工具【禅道,BugZilla,Jira,Excel表格来统计Bug数,自动化测试】性格【严谨,耐心】 九. 算法工程师  1 工作内容:算法工程师的工作内容,大部分时间都是在调优。就是调各种参数和语料,寻找特征,验证结果,排除噪音。也会和Hadoop神马的打一些交道,mahout神马的,我那个时候还在用JavaML。现在并不知道有没有什么更好用的工具了。有的时候还要自己去标注语料---当然大部分人都不爱做这个事儿,会找漂亮的小编辑去做。2 需要技能:基础【机器学习,数据挖掘】工具【Mahout,JavaML等其他的算法工具集】 十. 搜索工程师  1 工作内容: 所以搜索现在其实分成两种。一种是传统的搜索。包括:A。抓取 B。解析C。去重D。处理E。索引F。查询另一种是做为架构的搜索。并不包括之前的抓取解析去重,只有索引和查询。A。索引B。查询 2 需要技能:环境【Linux】框架【Luence,Slor,ElasticSearch,Cassandra,MongoDB】算法【倒排索引,权重计算公式,去重算法,Facet搜索的原理,高亮算法,实时索引】 十一. 大数据工程师  1 工作内容:工作内容在前期会比较多一些,基础搭建还是一个挺讲究的事儿。系统搭建好之后呢,大概是两种,一种是向大数据部门提交任务,跑一圈给你。一种是持续的文本信息处理中增加新的处理模块,像我之前说的增加个分类啦,实体识别神马的。好吧第一种其实我也不记得是从哪得来的印象了,我是没有见到过的。架构稳定了之后,大数据部门的工作并不太多,常常会和算法工程师混到一起来。其他的应该就是大数据周边产品的开发工作了。再去解决一些Bug什么的。2 需要技能:环境【Linux】框架【Hadoo,spark,storm,pig,hive,mahout,zookeeper 】算法【mapreduce,hdfs,zookeeper】。 十二. Android工程师  1 工作内容:Android工程师的日常就是听产品经理讲需求,跟后端定接口,听QA反馈哪款机器不兼容,闹着申请各种测试机,以及悲催的用Android做IOS的控件。 2 需要技能:环境【Android Studio,Maven,Gradle】基础【数据结构,Java,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】 十三. IOS工程师  1 工作内容:IOS工程师的工作内容真的挺简单的,听需求,定接口。做个适配,抛弃一下iphone4。还有啥。。马丹,以我为数不多的IOS知识来讲,真的不知道还有啥了。我知道的比较复杂的系统也是各种背景高斯模糊,各种渐变,各种图片滤镜处理,其他并没有什么。支付,地图,统计这些东西。 嗯。2 需要技能:环境【Xcode】基础【数据结构,Object,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】

行者武松 2019-12-02 01:21:45 0 浏览量 回答数 0

回答

是的,你可以这么做。 您需要的材料: 网络服务器 Web服务器中存储的数据库 还有一点Android知识:) Webservices(json,Xml ... etc)随便您如何使用 1.首先在清单文件中设置Internet权限 2.创建一个类以从服务器发出HTTPRequest(我正在使用json parisng获取值) 例如: public class JSONfunctions { public static JSONObject getJSONfromURL(String url) { InputStream is = null; String result = ""; JSONObject jArray = null; // Download JSON data from URL try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { Log.e("log_tag", "Error in http connection " + e.toString()); } // Convert response to string try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.e("log_tag", "Error converting result " + e.toString()); } try { jArray = new JSONObject(result); } catch (JSONException e) { Log.e("log_tag", "Error parsing data " + e.toString()); } return jArray; } } 3.在MainActivity“创建类的对象”中JsonFunctions,将url作为参数从您要获取数据的位置传递 例如: JSONObject jsonobject; jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL"); 4.然后,最后读取jsontags并将值存储在arraylist中,如果需要,稍后在listview中显示它 如果您有任何问题,可以关注此博客,他提供了出色的android教程AndroidHive 由于上述答案我写了很长回来,现在HttpClient,HttpPost,HttpEntity已在阿比23.删除您可以使用下面的的build.gradle(应用级)的代码仍继续使用org.apache.http的项目。 android { useLibrary 'org.apache.http.legacy' signingConfigs {} buildTypes {} } 或者您可以使用HttpURLConnection如下所示从服务器获取响应 public String getJSON(String url, int timeout) { HttpURLConnection c = null; try { URL u = new URL(url); c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setRequestProperty("Content-length", "0"); c.setUseCaches(false); c.setAllowUserInteraction(false); c.setConnectTimeout(timeout); c.setReadTimeout(timeout); c.connect(); int status = c.getResponseCode(); switch (status) { case 200: case 201: BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream())); StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line+"\n"); } br.close(); return sb.toString(); } } catch (MalformedURLException ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex); } finally { if (c != null) { try { c.disconnect(); } catch (Exception ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex); } } } return null; } 或您可以使用第三方库(如Volley)Retrofit来调用webservice api并获取响应,然后使用FasterXML-jackson,解析google-gson。来源:stack overflow

保持可爱mmm 2020-05-17 09:36:00 0 浏览量 回答数 0

问题

最全Android开发常用工具类 热:报错

kun坤 2020-06-06 16:33:25 0 浏览量 回答数 1

问题

大家客观的评价下,多谢 热? 400 报错

爱吃鱼的程序员 2020-06-04 14:31:40 1 浏览量 回答数 1

问题

JAVA web 【精品问答合集】

马铭芳 2019-12-01 20:09:25 24739 浏览量 回答数 3

回答

Xutils这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框架依赖非常的严重,一旦这个框架出现问题,那么对项目来说影响非常大的。、 OKhttp:Android开发中是可以直接使用现成的api进行网络请求的。就是使用HttpClient,HttpUrlConnection进行操作。okhttp针对Java和Android程序,封装的一个高性能的http请求库,支持同步,异步,而且okhttp又封装了线程池,封装了数据转换,封装了参数的使用,错误处理等。API使用起来更加的方便。但是我们在项目中使用的时候仍然需要自己在做一层封装,这样才能使用的更加的顺手。 Volley:Volley是Google官方出的一套小而巧的异步请求库,该框架封装的扩展性很强,支持HttpClient、HttpUrlConnection, 甚至支持OkHttp,而且Volley里面也封装了ImageLoader,所以如果你愿意你甚至不需要使用图片加载框架,不过这块功能没有一些专门的图片加载框架强大,对于简单的需求可以使用,稍复杂点的需求还是需要用到专门的图片加载框架。Volley也有缺陷,比如不支持post大数据,所以不适合上传文件。不过Volley设计的初衷本身也就是为频繁的、数据量小的网络请求而生。 Retrofit:Retrofit是Square公司出品的默认基于OkHttp封装的一套RESTful网络请求框架,RESTful是目前流行的一套api设计的风格, 并不是标准。Retrofit的封装可以说是很强大,里面涉及到一堆的设计模式,可以通过注解直接配置请求,可以使用不同的http客户端,虽然默认是用http ,可以使用不同Json Converter 来序列化数据,同时提供对RxJava的支持,使用Retrofit + OkHttp + RxJava + Dagger2 可以说是目前比较潮的一套框架,但是需要有比较高的门槛。 Volley VS OkHttp Volley的优势在于封装的更好,而使用OkHttp你需要有足够的能力再进行一次封装。而OkHttp的优势在于性能更高,因为 OkHttp基于NIO和Okio ,所以性能上要比 Volley更快。IO 和 NIO这两个都是Java中的概念,如果我从硬盘读取数据,第一种方式就是程序一直等,数据读完后才能继续操作这种是最简单的也叫阻塞式IO,还有一种是你读你的,程序接着往下执行,等数据处理完你再来通知我,然后再处理回调。而第二种就是 NIO 的方式,非阻塞式, 所以NIO当然要比IO的性能要好了,而 Okio是 Square 公司基于IO和NIO基础上做的一个更简单、高效处理数据流的一个库。理论上如果Volley和OkHttp对比的话,更倾向于使用 Volley,因为Volley内部同样支持使用OkHttp,这点OkHttp的性能优势就没了, 而且 Volley 本身封装的也更易用,扩展性更好些。 OkHttp VS Retrofit 毫无疑问,Retrofit 默认是基于 OkHttp 而做的封装,这点来说没有可比性,肯定首选 Retrofit。 Volley VS Retrofit 这两个库都做了不错的封装,但Retrofit解耦的更彻底,尤其Retrofit2.0出来,Jake对之前1.0设计不合理的地方做了大量重构, 职责更细分,而且Retrofit默认使用OkHttp,性能上也要比Volley占优势,再有如果你的项目如果采用了RxJava ,那更该使用 Retrofit 。所以这两个库相比,Retrofit更有优势,在能掌握两个框架的前提下该优先使用 Retrofit。但是Retrofit门槛要比Volley稍高些,要理解他的原理,各种用法,想彻底搞明白还是需要花些功夫的,如果你对它一知半解,那还是建议在商业项目使用Volley吧。

剑曼红尘 2020-04-10 12:53:23 0 浏览量 回答数 0

问题

OSS如何实现快速搭建移动应用直传服务(一)?

青衫无名 2019-12-01 21:38:28 1224 浏览量 回答数 0

问题

Android SDK是什么?

nicenelly 2019-12-01 21:28:03 1794 浏览量 回答数 0

问题

Android解析JSON数组,如果里面有两个数组,要怎么处理

杨冬芳 2019-12-01 20:19:19 1244 浏览量 回答数 1

问题

语音合成Android SDK

nicenelly 2019-12-01 21:01:45 1399 浏览量 回答数 0

问题

如何直接上传文件至OSS,不用服务器中转

cevin 2019-12-01 21:37:32 31842 浏览量 回答数 11

问题

Android SDK是什么?

nicenelly 2019-12-01 21:01:23 1531 浏览量 回答数 0

问题

日志的发布历史有哪些?

轩墨 2019-12-01 21:50:57 1618 浏览量 回答数 0

问题

android app通过php API连接数据库实现注册问题

小旋风柴进 2019-12-01 20:12:20 1287 浏览量 回答数 1

问题

立足GitHub学编程:13个不容错过的Java项目

技术小菜鸟 2019-12-01 21:48:13 2674 浏览量 回答数 1

问题

Android 最火的快速开发框架XUtils? 400 报错

爱吃鱼的程序员 2020-05-30 23:44:57 0 浏览量 回答数 1

问题

2020年热门编程语言的发展方向

珍宝珠 2020-02-17 17:58:58 3889 浏览量 回答数 3
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板