码迷,mamicode.com
首页 > 移动开发 > 详细

初学android 练习一

时间:2015-07-03 15:39:48      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

       之前学的是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格式的数据没有前缀了。技术分享

  小程序数据解析展示也成功了技术分享

初学android 练习一

标签:

原文地址:http://www.cnblogs.com/lp09/p/4618520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!