初学android 练习一

之前学的是C#,然后想转android,完全是个小白。然后就看了一些安卓的教学视频,在慕课网(http://www.imooc.com/course/list)中学习的。

然后想做一个登录的小dome,然后我就开始拉界面,写事件,写接口。瞬间感觉好牛逼的感觉(自我感觉而已莫要当真,各位大大见笑)

然后我们来说说接口,接口我是用Webservice写的。有两个方法,

方法一 :是根据用户名、密码去获取是否真确放回一个json格式数据,

方法二:根据名称,模糊查询数据,返回json格式的数据。

然后接口写好了,客户端也搭建好了,就开始写调用接口的方法了。要怎么调用呢。然后我就去看了关于Http相关的协议、方法、怎么使用。因为是小白,我就对着视频一步一步的对代码进行编码。担心会出bug会报错,所以就很认真的检查相关的代码。确定无误好开始执行了。

执行结果果然报错了,跟踪调试得到了错误提示是500。看到是这个错误,果断知道是服务器的错误了。然后我对我的Webservice服务进行了排查。发现服务能正常访问,也能得到正确的数据。

没找到问题出现在哪,我就开始了百度。百度搜索的到了结果说:“看看URL和参数是否传入正确”。然后我就方法中的URL和参数的传入进行了排斥。

因为是小白,所以排查结果没有找到问题出行在哪。然后我就开始思索,因为我的Webservice部署在本机上,是不是局域网的问题。通过手机不能访问。然后我就用手机连上了wifi(电脑和手机连的wifi是同一个),用手机测试Webservice的接口能否在手机上正常访问,测试结果:手机上能正常访问Webservice。

测试到这里我就开始纠结了。Url和参数有传入,局域网中有能访问,为什么会报500错误呢。

之后早朋友(简称:贰貨)要了一个能外网访问的URl和相关参数进行方法测试,看是不是我方法哪里有写错。经过修改测试能正常得到数据

然后我就对奇怪了,我的Url和参数真确,我的不能访问成功,而贰貨给我的URl和参数却能正常访问。我对URl地址进行了对比

我的Url:http://192.168.100.147:8081/Service1.asmx?op=GetCusInfo

贰貨Url:http://117.29.161.210:8091/web/api/Vehicle/GetSignOutPassFeeNew

两个Url地址没什么不对的地方。参数传递也没错误。这更让我费解了。然后又开始百度找相关的问题。 这次我想是不是我用的获取数据的方法不对(用的是HttpPost),然后在百度上找到了一个关于android调用Webservice的帖子( http://www.cnblogs.com/gzggyy/archive/2011/06/21/2086140.html),他用的方式是SoapObject这个类进行相关数据的获取,里面有相关方法的编码。我不在这里列举。

虽然能解决数据的获取问题,可是我还是有点纠结用Httpost的方式去获取数据,为什么呢(应为我觉得用HttpPost的方式代码要少些写起来也很方便)。然后我有开始了搜索。

功夫不负有心人,我找到了一篇帖子里面方法的类容:

发现是我想要的,我就对我的相关URl、参数进行了对比。发现URL好像不同。瞬间开心了,然后我就更改了我的Url 改为了:http://192.168.100.147:8081/Service1.asmx/GetCusInfo   这样的。可是我在进行执行的时候还是报错了。然后我就把URl放到浏览器中执行发现个URL执行出错了。然后就用了帖子里面的那个Url地址进行访问,结果是能访问成功的。这我就开心了,找到问题在哪里了,就对Webservice进行了修改。发现是应为没有对Webservice 进行配置

<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>

配置文件中添加  <system.web>节点里面添加

配置成功后在进行测试小程序访问成功了。相关放回数据也得到了。可是结果:

却又前缀,对我解析json的时候出错了,然后就搜素如何去掉这个前缀。方法一:jsonStr.replaceAll("</?[^>]+>", "") .trim()    将String格式jsonStr执行方法得到了纯json数据。可是这样的方式我觉得有点悬,总感觉不对一样。然后就对Webservice进行了修改,可是我应该怎么改呢。

百度也找到了相关的问题,然后我对代码进行了修改:。 只会获取到的数据就是纯json格式的数据没有前缀了。

小程序数据解析展示也成功了

时间: 2024-11-09 00:33:37

初学android 练习一的相关文章

初学Android Studio

刚开始学习Android Stuio感觉和eclipse有很大的不一样,一些快捷键什么的都不同,以下记录下我初学的一些过程. Android Studio和eclipse的项目结构有所不同,AS中的Project相当于es中的Workplace,而Module相当于es的Project,在eclipse中我用的比较习惯的快捷键是"ctrl+1"与"Alt+/",但是在AS中都是不同的,后来花了挺长时间才找到相对应的快捷键. "ctrl+1"相当于

初学android之简易的网易页面

WangYiActivity.java: public class WangYiActivity extends Activity implements OnClickListener{ public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.wangyi);        TextView tv=(TextView)findVi

初学Android ShareUserId(多应用共享资源和服务)

Android里面每个app都有一个唯一的linux user ID.我们通过SharedUserId,让使用相同的userID的两个app应用可以看到对方的文件.为了节省资源,具有相同ID的apk也可以在相同的linux进程中进行.ShareUserId的作用:数据共享.调用其他程序资源. 步骤: 一.新建a,b两个android项目,a  的包名com.rainwii.client     b  的包名com.rainwii.service 二.在a.b项目向的manifest.xml增加相

初学Android开发怎么开始?

在几个Android开发者群里面总是碰到新人提出这样的问题:"我想学Android开发,但是不知道怎么开始,不知道要学一些什么."  其实,我在最开始学习Android开发的时候也遇到这样的问题,并且自己在碰到这样的问题的时候并未得到好的指导,导致走了很多的弯路,并浪费了许多时间.在参加工作一段时间后,慢慢的对Android开发有了新的认识.于是就决定把自己之前遇到的一些疑难都慢慢的写下来,帮助Android新手开发走入正轨.当然本文可能有些偏差,请大家代为指正. 我是经过自己自学学的

初学Android,BroadcastReceiver之发送接收广播

BroadcastReceiver用于监听系统全局广播消息,由于BroadcastReceiver是一种全局的监听器,因此它可以非常方便地实现系统中不同组件之间通信 启动它需要两步 1.创建需要启动的BroadcastReceiver的Intent 2.调用Context的SendBroadcast或sendOrederedBroadcast方法来启动指定的BroadcastReceiver 这其中关键是创建Intent时,要setAction("xxx"),而BroadcastRec

从初学android到现在每天收入50块,收入还在慢慢增加 ,android开发者赚钱

从自学安卓一年到到现在每天有一点的收入还是蛮有成就感的 .本人,是学javaweb 开发的,刚工作不久,入职一个小公司,平常事情也不是很多,偶然的机会接触到android ,觉得挺好玩的 .刚开始挺迷茫的,搭载安卓环境弄了好久(现在搭载简单多了,直接在google官方下载一个压缩包,adt,都集成好了直接就可以用了 . 下载地址 http://developer.android.com/sdk/index.html#download).学习安卓一段时间后,自己也想搞一个小应用玩玩 ,然后就思索着

初学Android 创建 启动 停止Service 五十八

Service跟Windows系统里的服务概念差不多,都在后台执行,它跟Activity的最大区别就是,它是无界面的 开发Service与开发Activity的步骤类似 1.定义一个继承Service的子类 2.在AndroidManifest.xml文件中配置该Service Service与Activity还有一点相似之处,它们都是从Context派生出来的,因此它们都可调用Context里定义的如getResources(),getContentResolver()等方法 下面写一个简单的

初学Android 使用Drawable资源之使用ClipDrawable资源 十六

ClipDrawable代表从其它位图上截取一个"图片片段",XML中的根元素为<clip.../>,截取的方向由clipOrientation控制 下面以一个慢慢展开的图片为例 先定义一个ClipDrawable资源文件my_clip.xml <?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android

初学Android 图形图像之使用drawBitmapMesh扭曲图像 三十二

Canvas提供了一个方法drawBitmapMesh(Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors,int colorffset,Paint paint) 这个方法可以对bitmap进行扭曲参数说明如下:bitmap 需要扭曲的源位图meshWidth  控制在横向上把该源位图划成成多少格meshHeight  控制在纵向上把该源位图划成成多少格 verts